ó
    úÞ jõ  ã                  ó¬  • S SK Jr  S SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SKJ
r
  S S	KJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  SSKJr  SSKJr  \(       a6  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ r   S SKJ!r!  S SKJ"r"  S SK#J$r$  SSK%J&r&   " S S\5      r'\" \S5            S"S  j5       r(\" \S5      S#S! j5       r)g)$é    )ÚannotationsN)ÚAny)ÚTYPE_CHECKING)Úcast)ÚComputed)ÚJSON)Úschema)Úsqlé   )Úalter_table)Ú
ColumnName)Úformat_column_name)Úformat_table_name)ÚRenameTable)ÚDefaultImplé   )Úutil)Úcompiles)Ú	Inspector)ÚDDLCompiler)ÚCast)ÚClauseElement)ÚColumn)Ú
Constraint)ÚTable)Ú
TypeEngine)ÚBatchOperationsImplc                  óÖ   ^ • \ rS rSrSrSr     SS jrSS jrSS jr          SS jr	    SS jr
        SS	 jr S     SU 4S
 jjjr        SS jrS rSrU =r$ )Ú
SQLiteImplé&   ÚsqliteFc                óž  • UR                    H½  nUS   S:X  a¦  US   S   n[        UR                  [        R                  5      (       a5  [        UR                  R
                  [        R                  5      (       a    g[        UR                  [        5      (       a  UR                  R                  (       a    gM°  M²  US   S;  d  M½    g   g)z×Return True if the given :class:`.BatchOperationsImpl`
would need the table to be recreated and copied in order to
proceed.

Normally, only returns True on SQLite when operations other
than add_column are present.

r   Ú
add_columnr   T)Úcreate_indexÚ
drop_indexF)
ÚbatchÚ
isinstanceÚserver_defaultr	   ÚDefaultClauseÚargr
   r   r   Ú	persisted)ÚselfÚbatch_opÚopÚcols       ÚL/var/www/html/gaurav/venv/lib/python3.13/site-packages/alembic/ddl/sqlite.pyÚrequires_recreate_in_batchÚ%SQLiteImpl.requires_recreate_in_batch.   s±   € ð —.”.ˆBØ�!‰u˜Ó$Ø˜‘e˜A‘h�ÜØ×&Ñ&¬×(<Ñ(<÷ñ ä  ×!3Ñ!3×!7Ñ!7¼×9JÑ9J×KÑKÙä˜s×1Ñ1´8×<Ñ<Ø×*Ñ*×4×4áñ 5ñ =ð �A‘Ð<Õ<Ùñ !ð ó    c                óŽ   • UR                   c  [        S5      eUR                  U 5      (       a  [        R                  " S5        g g )Nú No support for ALTER of constraints in SQLite dialect. Please refer to the batch mode feature which allows for SQLite migrations using a copy-and-move strategy.z©Skipping unsupported ALTER for creation of implicit constraint. Please refer to the batch mode feature which allows for SQLite migrations using a copy-and-move strategy.)Ú_create_ruleÚNotImplementedErrorr   Úwarn©r,   ÚconstÚkws      r0   Úadd_constraintÚSQLiteImpl.add_constraintJ   sM   € ð ×ÑÑ%Ü%ðDóð ð
 ×Ñ ×%Ñ%Ü�IŠIðDõð &r3   c                ó4   • UR                   c  [        S5      eg )Nr5   )r6   r7   r9   s      r0   Údrop_constraintÚSQLiteImpl.drop_constraint[   s&   € Ø×ÑÑ%Ü%ðDóð ð &r3   c                óÖ   • Ub0  [         R                  " SSU5      n[         R                  " SSU5      nUb0  [         R                  " SSU5      n[         R                  " SSU5      nXC:g  $ )Nz
^\((.+)\)$z\1z^\"?'(.+)'\"?$)ÚreÚsub)r,   Úinspector_columnÚmetadata_columnÚrendered_metadata_defaultÚrendered_inspector_defaults        r0   Úcompare_server_defaultÚ!SQLiteImpl.compare_server_defaultc   s}   € ð %Ñ0Ü(*¯ªØ˜uÐ&?ó)Ð%ô )+¯ªØ! 5Ð*Có)Ð%ð &Ñ1Ü)+¯ªØ˜uÐ&@ó*Ð&ô *,¯ªØ! 5Ð*Dó*Ð&ð *ÑFÐFr3   c                óÂ   • U(       d  g[         R                  " SU5      (       a  g[         R                  " SU5      (       a  g[         R                  " SU5      (       a  gg)zäDetermine if a server default is a SQL expression or a constant.

There are too many assertions that expect server defaults to round-trip
identically without parenthesis added so we will add parens only in
very specific cases.

Fz	^[0-9\.]$z^'.+'$z^\(.+\)$T)rB   Úmatch)r,   Úexprs     r0   Ú-_guess_if_default_is_unparenthesized_sql_exprÚ8SQLiteImpl._guess_if_default_is_unparenthesized_sql_expr~   sI   € ö ØÜ�XŠX�l D×)Ñ)ØÜ�XŠX�i ×&Ñ&ØÜ�XŠX�k 4×(Ñ(Øàr3   c                ól   • U R                  UR                  SS 5      5      (       a  SUS   < S3US'   g g )NÚdefaultÚ(Ú))rM   Úget)r,   Ú	inspectorÚtableÚcolumn_infos       r0   Úautogen_column_reflectÚ!SQLiteImpl.autogen_column_reflect“   s>   € ð ×=Ñ=Ø�O‰O˜I tÓ,÷
ò 
ð 0;¸9Ô/EÐ%GˆK˜	Ò"ð
r3   c                óv   >• [         TU ]  " U4SU0UD6nU(       a  U R                  U5      (       a  SU< S3nU$ )NÚis_server_defaultrQ   rR   )ÚsuperÚrender_ddl_sql_exprrM   )r,   rL   rZ   r;   Ústr_exprÚ	__class__s        €r0   r\   ÚSQLiteImpl.render_ddl_sql_expr    sJ   ø€ ô
 ‘7Ò.Øñ
Ø$5ð
Ø9;ñ
ˆö
 Ø×BÑBÀ8×LÒLã!)Ð+ˆHØˆr3   c                óœ   • UR                   R                  UR                  La)  [        U[        5      (       d  [	        US   U5      US'   g g g )NrL   )ÚtypeÚ_type_affinityr'   r   r   )r,   ÚexistingÚexisting_transferÚnew_types       r0   Úcast_for_batch_migrateÚ!SQLiteImpl.cast_for_batch_migrate°   sN   € ð �M‰M×(Ñ(°×0GÑ0GÒGÜ˜x¬×.Ñ.ä(,Ø! &Ñ)¨8ó)Ð˜fÒ%ð /ð Hr3   c                ó&   • U R                  XB5        g )N)Ú_skip_functional_indexes)r,   Úconn_unique_constraintsÚconn_indexesÚmetadata_unique_constraintsÚmetadata_indexess        r0   Úcorrect_for_autogen_constraintsÚ*SQLiteImpl.correct_for_autogen_constraints¾   s   € ð 	×%Ñ%Ð&6ÕEr3   © )r-   r   ÚreturnÚbool)r:   r   r;   r   )
rD   úColumn[Any]rE   rs   rF   ú
str | NonerG   rt   rq   rr   )rL   rt   rq   rr   )rT   r   rU   r   rV   zdict[str, Any]rq   ÚNone)F)rL   r   rZ   rr   rq   Ústr)rc   rs   rd   zdict[str, TypeEngine | Cast]re   r   rq   ru   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__dialect__Útransactional_ddlr1   r<   r?   rH   rM   rW   r\   rf   rn   Ú__static_attributes__Ú__classcell__)r^   s   @r0   r   r   &   s  ø† Ø€KàÐððØ+ðà	ôô8ô"ðGà%ðGð %ðGð $.ð	Gð
 %/ðGð 
ôGð6Øðà	ôð*HàðHð ðHð $ð	Hð
 
ôHð >CðØ!ðØ6:ðà	÷ð ð àðð 8ðð ð	ð
 
ô÷Fð Fr3   r   r!   c                óx   • [        XR                  U R                  5      < S[        XR                  S 5      < 3$ )Nz RENAME TO )r   Ú
table_namer	   r   Únew_table_name©ÚelementÚcompilerr;   s      r0   Úvisit_rename_tabler…   È   s2   € ô
 	�H×0Ñ0°'·.±.ÖAÜ˜(×$:Ñ$:¸DÕAðð r3   c                ó¤   • [        XR                  U R                  5      < S[        XR                  5      < S[        XR
                  5      < 3$ )Nz RENAME COLUMN z TO )r   r€   r	   r   Úcolumn_nameÚnewnamer‚   s      r0   Úvisit_column_namer‰   Ò   s<   € ô 	�H×0Ñ0°'·.±.ÖAÜ˜8×%8Ñ%8Ö9Ü˜8§_¡_Õ5ðð r3   )rƒ   r   r„   r   rq   rv   )rƒ   r   r„   r   rq   rv   )*Ú
__future__r   rB   Útypingr   r   Ú
sqlalchemyr   r   r   r	   r
   Úbaser   r   r   r   r   Úimplr   Ú r   Úutil.sqla_compatr   Úsqlalchemy.engine.reflectionr   Úsqlalchemy.sql.compilerr   Úsqlalchemy.sql.elementsr   r   Úsqlalchemy.sql.schemar   r   r   Úsqlalchemy.sql.type_apir   Úoperations.batchr   r   r…   r‰   rp   r3   r0   Ú<module>r—      s·   ðõ #ã 	Ý Ý  å Ý Ý Ý Ý å Ý Ý $Ý #Ý Ý Ý Ý 'æÝ6Ý3Ý,Ý5Ý,Ý0Ý+Ý2å6ô_F�ô _FñD 
ˆ+�xÓ ðØðØ$/ðàóó !ðñ 
ˆ*�hÓóó  ñr3   