§ }<ˆj¿ãó†—ddlmZddlZddlmZddlmZddlmZddlmZddlmZddl m Z dd l m Z dd l m Z dd l m Z dd lmZd dlmZd dlmZd dlmZd dlmZddlmZer6ddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddl#m$Z$ddl%m&Z&Gd„de¦«Z'eed¦«d'd&„¦«Z(dS)(é)Ú annotationsN)ÚAny)ÚDict)ÚOptional)Ú TYPE_CHECKING)ÚUnion)Úcast)ÚJSON)Úschema)Úsql)Úcompilesé)Ú alter_table)Úformat_table_name)Ú RenameTable)Ú DefaultImplé)Úutil)Ú Inspector)Ú DDLCompiler)ÚCast)Ú ClauseElement)ÚColumn)Ú Constraint)ÚTable)Ú TypeEngine)ÚBatchOperationsImplcól‡—eZdZdZdZ d(d„Zd)d „Zd)d „Zd*d„Zd+d„Z d,d„Z d-d.ˆfd „ Z d/d&„Z d'„Z ˆxZS)0Ú SQLiteImplÚsqliteFÚbatch_oprÚreturnÚboolcó\—|jD]£}|ddkrˆ|dd}t|jtj¦«r't|jjt j¦«rdSt|jtj j ¦«r|jj rdSŒ–|ddvrdSŒ¤dS)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_columnrT)Ú create_indexÚ drop_indexF) ÚbatchÚ isinstanceÚserver_defaultr Ú DefaultClauseÚargr rrÚ sqla_compatÚComputedÚ persisted)Úselfr!ÚopÚcols úd/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/alembic/ddl/sqlite.pyÚrequires_recreate_in_batchz%SQLiteImpl.requires_recreate_in_batch+sÈ€ð”.ð ð ˆBØ�!Œu˜ Ò$Ð$ؘ”e˜A”h�ÝØÔ&­Ô(<ñôð å  Ô!3Ô!7½Ô9JÑKÔKð ð ˜4˜4å˜sÔ1µ4Ô3CÔ3LÑMÔMð àÔ*Ô4ð ð ˜4˜4øØ�A”Ð<Ð<Ð<Ø�t�tð=ð�5óÚconstrcóˆ—|j€td¦«‚| |¦«rtjd¦«dSdS)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©r0r6s r3Úadd_constraintzSQLiteImpl.add_constraintGsk€ð Ô Ð %Ý%ðDñôð ð × Ò  Ñ %Ô %ð Ý ŒIðDñ ô ð ð ð ð ð r5có2—|j€td¦«‚dS)Nr8)r9r:r<s r3Údrop_constraintzSQLiteImpl.drop_constraintXs+€Ø Ô Ð %Ý%ðDñôð ð &Ð %r5Úinspector_columnú Column[Any]Úmetadata_columnÚrendered_metadata_defaultú Optional[str]Úrendered_inspector_defaultcóÆ—|�,tjdd|¦«}tjdd|¦«}|�,tjdd|¦«}tjdd|¦«}||kS)Nz ^\((.+)\)$z\1z^\"?'(.+)'\"?$)ÚreÚsub)r0r@rBrCrEs r3Úcompare_server_defaultz!SQLiteImpl.compare_server_default`sŒ€ð %Ð 0Ý(*¬Ø˜uÐ&?ñ)ô)Ð %õ)+¬Ø! 5Ð*Cñ)ô)Ð %ð &Ð 1Ý)+¬Ø˜uÐ&@ñ*ô*Ð &õ*,¬Ø! 5Ð*Dñ*ô*Ð &ð*Ð-FÒFÐFr5Úexprcó˜—|sdStjd|¦«rdStjd|¦«rdStjd|¦«rdSdS)aDetermine 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)rGÚmatch)r0rJs r3Ú-_guess_if_default_is_unparenthesized_sql_exprz8SQLiteImpl._guess_if_default_is_unparenthesized_sql_expr|sa€ðð Ø�5Ý ŒX�l DÑ )Ô )ð Ø�5Ý ŒX�i Ñ &Ô &ð Ø�5Ý ŒX�k 4Ñ (Ô (ð Ø�5à�4r5Ú inspectorrÚtablerÚ column_infoúDict[str, Any]ÚNonecóz—| | dd¦«¦«rd|d›d�|d<dSdS)NÚdefaultú(ú))rMÚget)r0rNrOrPs r3Úautogen_column_reflectz!SQLiteImpl.autogen_column_reflect‘s`€ð × =Ò =Ø �OŠO˜I tÑ ,Ô ,ñ ô ð Hð Hð0;¸9Ô/EÐ/EÐ/EÐ%GˆK˜ Ñ "Ð "Ð "ð Hð Hr5rÚis_server_defaultÚstrc óz•—t¦«j|fd|i|¤Ž}|r| |¦«rd|›d�}|S)NrYrUrV)ÚsuperÚrender_ddl_sql_exprrM)r0rJrYÚkwÚstr_exprÚ __class__s €r3r]zSQLiteImpl.render_ddl_sql_expržsmø€ð /•5‘7”7Ô.Ø ð ð Ø$5ð Ø9;ð ð ˆð ð ,à×BÒBÀ8ÑLÔLð ,ð ,ð"*  Ð+ˆH؈r5ÚexistingÚexisting_transferú"Dict[str, Union[TypeEngine, Cast]]Únew_typercó�—|jj|jur0t|t¦«st |d|¦«|d<dSdSdS)NrJ)ÚtypeÚ_type_affinityr)r r )r0rarbrds r3Úcast_for_batch_migratez!SQLiteImpl.cast_for_batch_migrate®si€ð ŒMÔ (ØÔ*ð +ð +å˜x­Ñ.Ô.ð +õ)-Ø! &Ô)¨8ñ)ô)Ð ˜fÑ %Ð %Ð %ð  +ð +ð +ð +r5có2—| ||¦«dS)N)Ú_skip_functional_indexes)r0Úconn_unique_constraintsÚ conn_indexesÚmetadata_unique_constraintsÚmetadata_indexess r3Úcorrect_for_autogen_constraintsz*SQLiteImpl.correct_for_autogen_constraints½s!€ð ×%Ò%Ð&6¸ ÑEÔEÐEÐEÐEr5)r!rr"r#)r6r) r@rArBrArCrDrErDr"r#)rJrDr"r#)rNrrOrrPrQr"rR)F)rJrrYr#r"rZ)rarArbrcrdrr"rR)Ú__name__Ú __module__Ú __qualname__Ú __dialect__Útransactional_ddlr4r=r?rIrMrXr]rhroÚ __classcell__)r`s@r3rr#sø€€€€€Ø€KàÐðððððð8ðððð"ððððGðGðGðGð8ðððð* Hð Hð Hð Hð>Cðððððððð ð ð ð ðFðFðFðFðFðFðFr5rr ÚelementrÚcompilerrr"rZc ój—t||j|j¦«›dt||jd¦«›�S)Nz RENAME TO )rÚ table_namer rÚnew_table_name)rvrwr^s r3Úvisit_rename_tabler{Ès=€õ �H˜gÔ0°'´.ÑAÔAÐAÐAݘ( GÔ$:¸DÑAÔAÐAð ðr5)rvrrwrr"rZ))Ú __future__rrGÚtypingrrrrrÚ sqlalchemyr r r r Úsqlalchemy.ext.compilerr ÚbaserrrÚimplrÚrÚsqlalchemy.engine.reflectionrÚsqlalchemy.sql.compilerrÚsqlalchemy.sql.elementsrrÚsqlalchemy.sql.schemarrrÚsqlalchemy.sql.type_apirÚoperations.batchrrr{©r5r3úrŠsJðØ"Ð"Ð"Ð"Ð"Ð"à € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ,Ð,Ð,Ð,Ð,Ð,àÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàð 7Ø6Ð6Ð6Ð6Ð6Ð6Ø3Ð3Ð3Ð3Ð3Ð3Ø,Ð,Ð,Ð,Ð,Ð,Ø5Ð5Ð5Ð5Ð5Ð5Ø,Ð,Ð,Ð,Ð,Ð,Ø0Ð0Ð0Ð0Ð0Ð0Ø+Ð+Ð+Ð+Ð+Ð+Ø2Ð2Ð2Ð2Ð2Ð2à6Ð6Ð6Ð6Ð6Ð6ðbFðbFðbFðbFðbF�ñbFôbFðbFðJ €ˆ+�xÑ Ô ðððñ!Ô ðððr5