+
    Tj:                        R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHt ^ RI	H
t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHt ^ R
IHt ^RIHt ^RIHt ^RIH t  ^RI!H"t" ^RI#H$t$ ^RI%H&t& ^RI'H(t( R t)R t*R t+R t,]PZ                  ! RRP\                  4       ]PZ                  ! R])! ]4      4       ]PZ                  ! R])! ]4      4       ]PZ                  ! R])! ]4      4       ]PZ                  ! R])! ]4      4       ]P^                  ! ]P`                  ]14       ]P^                  ! ]Pd                  ]*4       ]P^                  ! ]P                  ]+4        ! R R]4      t3]! R4      t4 ! R R ]Pj                  4      t6R# )!z@
SQLite backend for the sqlite3 module in the standard library.
N)Mapping)chaintee)dbapi2)ImproperlyConfigured)IntegrityError)BaseDatabaseWrapper)async_unsafe)
parse_dateparse_datetime
parse_time)_lazy_re_compile)register)DatabaseClient)DatabaseCreation)DatabaseFeatures)DatabaseIntrospection)DatabaseOperations)DatabaseSchemaEditorc                   a  V 3R l# )zJ
Convert bytestrings from Python's sqlite3 interface to a regular string.
c                 0   < S! V P                  4       4      # N)decode)s	conv_funcs   &T/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/backends/sqlite3/base.py<lambda>decoder.<locals>.<lambda>    s    Yqxxz*     )r   s   fr   decoderr       s     +*r   c                 "    V P                  4       # r   	isoformatvals   &r   
adapt_dater&   #   s    ==?r   c                 $    V P                  R 4      # ) r"   r$   s   &r   adapt_datetimer)   '   s    ==r   c                 .    V R ,          f   R# RV ,          # )
max_lengthvarcharvarchar(%(max_length)s)r   )datas   &r   _get_varchar_columnr/   +   s    L!$t++r   bool   1datetimedatetime	timestampc                     a  ] tR t^<t o RtRt/ RRbRRbRRbRR	bR
]bRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbR R!R"R#R$R%R&RR'RR(R)R*RR+R,R-R./	CtR R/RR0R"R/R$R//tRR1RR1R'R1/t	R2R3R4R5R6R5R7R5R8R9R:R;R<R=R>R?R@RARBRCRDR5RER5RFR5RGR5/t
RHtR6RIR7RJRDRKRFRLRERMRGRN/t]! . R^O4      t]t]t]t]t]t]t]tRO tRP t]RQ 4       tR_RS lt ]RT 4       t!RU t"RV t#RW t$RX t%R_RY lt&RZ t'R[ t(R\ t)R]t*V t+RR# )`DatabaseWrappersqliteSQLite	AutoFieldintegerBigAutoFieldBinaryFieldBLOBBooleanFieldr0   	CharField	DateFieldr2   DateTimeFieldr4   DecimalFielddecimalDurationFieldbigint	FileFieldr-   FilePathField
FloatFieldrealIntegerFieldBigIntegerFieldIPAddressFieldzchar(15)GenericIPAddressFieldzchar(39)	JSONFieldtextPositiveBigIntegerFieldzbigint unsignedPositiveIntegerFieldzinteger unsignedPositiveSmallIntegerFieldzsmallint unsigned	SlugFieldSmallAutoFieldSmallIntegerFieldsmallint	TextField	TimeFieldr3   	UUIDFieldzchar(32)z"%(column)s" >= 0z2(JSON_VALID("%(column)s") OR "%(column)s" IS NULL)AUTOINCREMENTexactz= %siexactzLIKE %s ESCAPE '\'contains	icontainsregexz	REGEXP %siregexzREGEXP '(?i)' || %sgtz> %sgtez>= %sltz< %sltez<= %s
startswithendswithistartswith	iendswithz@REPLACE(REPLACE(REPLACE({}, '\', '\\'), '%%', '\%%'), '_', '\_')z"LIKE '%%' || {} || '%%' ESCAPE '\'z)LIKE '%%' || UPPER({}) || '%%' ESCAPE '\'zLIKE {} || '%%' ESCAPE '\'z!LIKE UPPER({}) || '%%' ESCAPE '\'zLIKE '%%' || {} ESCAPE '\'z!LIKE '%%' || UPPER({}) ESCAPE '\'c           	        V P                   pVR ,          '       g   \        R4      hRVR ,          R\        P                  \        P                  ,          /VR,          CpRV9   d+   VR,          '       d   \
        P                  ! R\        4       VP                  RRRR	/4       VP                  R
R4      pVeu   VP                  4       V P                  9  dV   RP                  \        V P                  4       Uu. uF  qD: NK  	  up4      p\        RV P                  : RV RV R24      hV'       d   VP                  4       MRV n        VP                  RR4      pVP!                  R4      V n        V# u upi )NAMEzJsettings.DATABASES is improperly configured. Please supply the NAME value.databasedetect_typesOPTIONScheck_same_threadzThe `check_same_thread` option was provided and set to True. It will be overridden with False. Use the `DatabaseWrapper.allow_thread_sharing` property instead for controlling thread shareability.FuriTtransaction_modeN, zsettings.DATABASES[z>]['OPTIONS']['transaction_mode'] is improperly configured to 'z'. Use one of z
, or None.init_command ;)settings_dictr   DatabasePARSE_DECLTYPESPARSE_COLNAMESwarningswarnRuntimeWarningupdatepopuppertransaction_modesjoinsortedaliasrq   splitinit_commands)selfrv   kwargsrq   modeallowed_transaction_modesrs   s   &      r   get_connection_params%DatabaseWrapper.get_connection_params   s   **V$$&0 
 f-H44x7N7NN
 I&
 &(V4G-H-HMM7  	*E5$?@!::&8$?( &&(0F0FF(,		)/0F0F)GH)G8)GH)% '%djj^ 400@/A,-Z9 
 =M 0 6 6 8RVzz."5)//4 Is   =E9c                .    V P                   P                  # r   )rw   sqlite_version_infor   s   &r   get_database_version$DatabaseWrapper.get_database_version   s    }}000r   c                   \         P                  ! R/ VB p\        V4       VP                  R 4       VP                  R4       V P                   F.  pVP                  4       ;p'       g   K  VP                  V4       K0  	  V# )PRAGMA foreign_keys = ONzPRAGMA legacy_alter_table = OFFr   )rw   connectregister_functionsexecuter   strip)r   conn_paramsconnrs   s   &&  r   get_new_connection"DatabaseWrapper.get_new_connection   ss    .+.4 /0 	67 ..L+1133|33\* / r   Nc                B    V P                   P                  \        R 7      # ))factory)
connectioncursorSQLiteCursorWrapper)r   names   &&r   create_cursorDatabaseWrapper.create_cursor   s    %%.A%BBr   c                    V P                  4        V P                  4       '       g   \        P                  ! V 4       R # R # r   )validate_thread_sharingis_in_memory_dbr   closer   s   &r   r   DatabaseWrapper.close   s2    $$& ##%%%%d+ &r   c                    V P                   # r   )in_atomic_blockr   s   &r   _savepoint_allowed"DatabaseWrapper._savepoint_allowed   s     ###r   c                    V'       d   R pMRpV P                   ;_uu_ 4        W P                  n        R R R 4       R #   + '       g   i     R # ; i)Nrt   )wrap_database_errorsr   isolation_level)r   
autocommitlevels   && r   _set_autocommitDatabaseWrapper._set_autocommit   s8    E E &&&.3OO+ '&&&s	   =A	c                    V P                  4       ;_uu_ 4       pVP                  R 4       VP                  R4      P                  4       ^ ,          pRRR4       \        X4      '       * #   + '       g   i     L ; i)zPRAGMA foreign_keys = OFFzPRAGMA foreign_keysN)r   r   fetchoner0   )r   r   enableds   &  r   disable_constraint_checking+DatabaseWrapper.disable_constraint_checking   sW    [[]]fNN67 nn%:;DDFqIG  =   ]s   8A))A9	c                    V P                  4       ;_uu_ 4       pVP                  R 4       RRR4       R#   + '       g   i     R# ; i)r   N)r   r   )r   r   s   & r   enable_constraint_checking*DatabaseWrapper.enable_constraint_checking  s(    [[]]fNN56 ]]]s	   5A	c                8  a a S P                  4       ;_uu_ 4       oVf!   SP                  R4      P                  4       pM!\        P                  ! VV 3R lV 4       4      pV EF  w  ppppSP                  RS P
                  P                  V4      ,          4      P                  4       V,          pVR,          w  rS P                  P                  SV4      p
SP                  RS P
                  P                  V
4      : RS P
                  P                  V4      : RS P
                  P                  V4      : R	2V34      P                  4       w  r\        R
V: RV: RV: RV: RV: RV: RV	: R24      h	  RRR4       R#   + '       g   i     R# ; i)a-  
Check each table name in `table_names` for rows with invalid foreign
key references. This method is intended to be used in conjunction with
`disable_constraint_checking()` and `enable_constraint_checking()`, to
determine if rows with invalid references were entered while constraint
checks were off.
NzPRAGMA foreign_key_checkc              3      <"   T FD  pSP                  R SP                  P                  V4      ,          4      P                  4       x  KF  	  R# 5i)zPRAGMA foreign_key_check(%s)N)r   ops
quote_namefetchall).0
table_namer   r   s   & r   	<genexpr>4DatabaseWrapper.check_constraints.<locals>.<genexpr>  sH      1 '2
 NN69L9LZ9XXhj! '2s   AAzPRAGMA foreign_key_list(%s):      NzSELECT rr   z FROM z WHERE rowid = %szThe row in table 'z' with primary key 'z' has an invalid foreign key: .z contains a value 'z.' that does not have a corresponding value in )r   r   r   r   from_iterabler   r   introspectionget_primary_key_columnr   r   )r   table_names
violationsr   rowidreferenced_table_nameforeign_key_indexforeign_keycolumn_namereferenced_column_nameprimary_key_column_nameprimary_key_value	bad_valuer   s   f&           @r   check_constraints!DatabaseWrapper.check_constraints  se    [[]]f"#^^,FGPPR
"00 1 '2	1 
 %!$nn1DHH4G4G
4SS(*.0 7B#6F3*.*<*<*S*SJ+' 06~~ ++,CD++K8++J7	 H0 (* -! %
 #)"#!-. # ! ]]]s   E#FF	c                    R # )Tr   r   s   &r   	is_usableDatabaseWrapper.is_usable>  s    r   c                    V P                   f"   V P                  4       P                  R4       R# V P                  4       P                  RV P                    24       R# )z
Start a transaction explicitly in autocommit mode.

Staying in autocommit mode works around a bug of sqlite3 that breaks
savepoints when autocommit is disabled.
NBEGINzBEGIN )rq   r   r   r   s   &r   #_start_transaction_under_autocommit3DatabaseWrapper._start_transaction_under_autocommitA  sF       (KKM!!'*KKM!!F4+@+@*A"BCr   c                Z    V P                   P                  V P                  R ,          4      # )rk   )creationr   rv   r   s   &r   r   DatabaseWrapper.is_in_memory_dbM  s"    }},,T-?-?-GHHr   )r   rq   )DEFERRED	EXCLUSIVE	IMMEDIATEr   ),__name__
__module____qualname____firstlineno__vendordisplay_namer/   
data_typesdata_type_check_constraintsdata_types_suffix	operatorspattern_escpattern_ops	frozensetr   rw   r   SchemaEditorClassr   client_classr   creation_classr   features_classr   introspection_classr   	ops_classr   r   r	   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r7   r7   <   s{    FLY	 	v 		
 	( 	V 	 		 	 	. 	2 	f 		 	8 	*  	 !" 	V#$ 	"#4 2#%8.)ZVVZ5J: 	"#6I 3#%8	# 	_/ 	')*'fwfw+),*I2 VK9A3;19K ""HIH,!L%N%N/"I,\1  C , ,$
4!76p
DI Ir   r7   z(?<!%)%sc                   T   a a ] tR tRt oRtR	V 3R lltV 3R ltRR/R ltRtVt	V ;t
# )
r   iT  a5  
Django uses the "format" and "pyformat" styles, but Python's sqlite3 module
supports neither of these styles.

This wrapper performs the following conversions:

- "format" style to "qmark" style
- "pyformat" style to "named" style

In both cases, if you want to use a literal "%s", you'll need to use "%%s".
Nc                   < Vf   \         SV `  V4      # \        V\        4      '       d   \	        V4      MR pV P                  WR7      p\         SV `  W4      # N)param_names)superr   
isinstancer   listconvert_query)r   queryparamsr   	__class__s   &&& r   r   SQLiteCursorWrapper.executea  sP    >7?5))&0&A&Ad6lt""5"Bwu--r   c                   < \        \        V4      4      w  r2\        VR 4      ;p'       d#   \        V\        4      '       d   \        V4      pMR pV P                  WR7      p\        SV `!  W4      # r   )	r   iternextr   r   r   r  r   executemany)r   r  
param_listpeekabler  r   r  s   &&&   r   r	  SQLiteCursorWrapper.executemanyi  sf      #4
#348T**F*
670K0Kv,KK""5"Bw"555r   r   c                   Vf'   \         P                  RV4      P                  RR4      # Y Uu/ uF  q3RV 2bK
  	  up,          # u upi )N?z%%%:)FORMAT_QMARK_REGEXsubreplace)r   r  r   r   s   &&$ r   r  !SQLiteCursorWrapper.convert_queryt  sP    %))#u5==dCHH EAdV*,EEEEs   Ar   r   )r   r   r   r   __doc__r   r	  r  r   r   __classcell__)r  r   s   @@r   r   r   T  s(     
.	6F$ F Fr   r   )7r  r4   rD   rz   collections.abcr   	itertoolsr   r   sqlite3r   rw   django.core.exceptionsr   	django.dbr   django.db.backends.base.baser   django.utils.asyncior	   django.utils.dateparser
   r   r   django.utils.regex_helperr   
_functionsr   r   clientr   r   r   featuresr   r   r   
operationsr   schemar   r    r&   r)   r/   register_converter__eq__register_adapterDecimalstrr2   r7   r  Cursorr   r   r   r   <module>r+     s5      #   & 7 $ < - I I 6 6 " & & 0 * (+, 	  FDKK 0   FGJ$7 8   FGJ$7 8   J(? @   K)@ A   '//3 /   (-- 4   (++^ <RI) RIj &k2 &F(// &Fr   