/opt/cloudlinux/venv/lib/python3.11/site-packages/alembic/ddl/__pycache__
NameSizeModeActions
base.cpython-311.pyc174870644editdlrm
impl.cpython-311.pyc309220644editdlrm
mssql.cpython-311.pyc167320644editdlrm
mysql.cpython-311.pyc173100644editdlrm
oracle.cpython-311.pyc91190644editdlrm
postgresql.cpython-311.pyc310740644editdlrm
sqlite.cpython-311.pyc82870644editdlrm
__init__.cpython-311.pyc4940644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/alembic/ddl/__pycache__/impl.cpython-311.pyc (30922B)
§ fº 1g'Uãó^—UddlmZddlmZddlZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z dd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZer~ddlmZddlmZddlmZddlmZddlmZddl m!Z!ddl"m#Z#ddl"m$Z$ddl"m%Z%dd l&m'Z'dd!l&m(Z(dd"l&m)Z)dd#l&m*Z*dd$l&m+Z+dd%l&m,Z,dd&l-m.Z.dd'l/m0Z0dd(lm1Z1dd)l2m3Z3dd*l4m5Z5dd+l4m6Z6Gd,„d-e7¦«Z8iZ9d.e:d/<ed0gd1¢¦«Z;Gd2„d3e8¬4¦«Zr=r/r/3s(€€€€€ð ð ð ð ð ð r>r/zDict[str, Type[DefaultImpl]]r:ÚParams)Útoken0ÚtokensÚargsÚkwargscóú—eZdZUdZdZdZdZddhfZded<d Z d ed <d Z d ed<dšd„Z e d›d„¦«Z dœd"„Zd�d%„Zdžd*„ZedŸd+„¦«Zd,d ej¦«fd d5„Z d¡d¢d7„Z d£d¤dM„Z d¡d¥dQ„Z d¡d¦dR„Zd§dT„Zd¨dV„Z d¡d©dZ„Zdªd[„Zdªd\„Zd«d_„Zdªd`„Z dªda„Z!d¬dc„Z"d«dd„Z# d­d®dj„Z$d¯dm„Z%d°dp„Z&d±ds„Z'd²dv„Z(dw„Z)d³d~„Z*d„Z+ d´dµdƒ„Z,d¶d‡„Z-d·d‹„Z.dŒ„Z/d¸d�„Z0d¸dŽ„Z1d¸d�„Z2d¹d•„Z3d–„Z4dºd˜„Z5d™„Z6d,S)»Ú DefaultImplašProvide the entrypoint for major migration operations, including database-specific behavioral variances. While individual SQL/DDL constructs already provide for database-specific implementations, variances here allow for entirely different sequences of operations to take place for a particular migration, such as SQL Server's special 'IDENTITY INSERT' step for bulk inserts. ÚdefaultFú;ÚNUMERICÚDECIMALzTuple[Set[str], ...]Ú type_synonymsrBz Sequence[str]Útype_arg_extract)Úon_nullzTuple[str, ...]Úidentity_attrs_ignoreÚdialectrÚ connectionúOptional[Connection]Úas_sqlÚboolÚtransactional_ddlúOptional[bool]Ú output_bufferúOptional[TextIO]Ú context_optsr5ÚreturnÚNonecóê—||_||_||_| dd¦«|_||_i|_||_|�||_|jr|jstj d¦«‚dSdS)NÚ literal_bindsFz3Can't use literal_binds setting without as_sql mode) rRrSrUÚgetr_rYÚmemor[rWrÚ CommandError)ÚselfrRrSrUrWrYr[s r=r9zDefaultImpl.__init__\s—€ðˆŒ Ø$ˆŒØˆŒ Ø)×-Ò-¨o¸uÑEÔEˆÔà*ˆÔ؈Œ Ø(ˆÔØ Ð (Ø%6ˆDÔ "à Ô ð Ø”;ð ÝÔ'ØIñôðð ð ð ð r>úType[DefaultImpl]có&—t|jS©N)r:Úname)r;rRs r=Úget_by_dialectzDefaultImpl.get_by_dialectvs€å�g”lÔ#Ð#r>rr1có„—|j€J‚|j |dz¦«|j ¦«dS)Nz )rYÚwriteÚflush)rcrs r=Ú static_outputzDefaultImpl.static_outputzsG€ØÔ!Ð-Ð-Ð-Ø Ô× Ò  ¨¡Ñ/Ô/Ð/Ø Ô× Ò Ñ"Ô"Ð"Ð"Ð"r>Úbatch_opr-có—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. FrB)rcrms r=Úrequires_recreate_in_batchz&DefaultImpl.requires_recreate_in_batchs €ðˆur>Ú batch_implr,Útabler&có—dS)zèperform any operations needed on a table before a new one is created to replace it in batch mode. the PG dialect uses this to drop constraints on the table before the new one uses those same names. NrB)rcrprqs r=Úprep_table_for_batchz DefaultImpl.prep_table_for_batchŒó€€€r>có—|jSrf)rS©rcs r=ÚbindzDefaultImpl.bind—s €àŒÐr>NÚ constructúUnion[ClauseElement, str]Úexecution_optionsúOptional[dict[str, Any]]Ú multiparamsúSequence[dict]ÚparamsúOptional[CursorResult]cóT—t|t¦«rt|¦«}|jr¯|s|rt d¦«‚|jr-t|t j¦«stddi¬¦«}ni}|j dd|j i|¤Ž}|  t|¦«  dd¦«  ¦«|jz¦«dS|j}|€J‚|r |jdi|¤Ž}|rt|t"¦«sJ‚||fz }| ||¦«S) Nz+Execution arguments not allowed with as_sqlr_T)Úcompile_kwargsrRú z rB)Ú isinstancer1rrUÚ Exceptionr_rÚ DDLElementÚdictÚcompilerRrlÚreplaceÚstripÚcommand_terminatorrSrzÚtupleÚexecute)rcrxrzr|r~Ú compile_kwÚcompiledÚconns r=Ú_execzDefaultImpl._exec›sƒ€õ �i¥Ñ %Ô %ð (ݘY™œˆIØ Œ;ð Øð O˜fð OåÐ MÑNÔNÐNàÔ!ð ­*Ø�6Ô,ñ+ô+ð õ"°/À4Ð1HÐIÑIÔI� � à� à(�yÔ(ððØœ ðØ(2ððˆHð × Ò Ý�H‘ ” ×%Ò% d¨FÑ3Ô3×9Ò9Ñ;Ô;ØÔ)ñ*ñ ô ð ð�4à”?ˆDØÐ#Ð#Ð#Ø ð CØ-�tÔ-ÐBÐBÐ0AÐBÐB�Øð )Ý! +­uÑ5Ô5Ð5Ð5Ð5Ø ˜yÑ(� à—<’<ؘ;ñôð r>Úsqlcó2—| ||¦«dSrf)r�)rcr‘rzs r=rŒzDefaultImpl.executeÅs€ð � Š �3Ð)Ñ*Ô*Ð*Ð*Ð*r>Ú table_nameÚ column_nameÚnullableÚserver_defaultú%Union[_ServerDefault, Literal[False]]rgú Optional[str]Útype_úOptional[TypeEngine]rÚ autoincrementÚcommentú$Optional[Union[str, Literal[False]]]Úexisting_commentÚ existing_typeÚexisting_server_defaultúOptional[_ServerDefault]Úexisting_nullableÚexisting_autoincrementÚkwrc óÆ—|€|�tjdd¬¦«|�/| tj||||| | | | ¬¦«¦«|dur{i}t j|| ¦«r tj}n3t j|| ¦«rtj }||d<n tj }| ||||f|| | | | dœ|¤Ž¦«|�/| tj ||||| | | | ¬¦«¦«| dur/| tj ||| || | | | ¬¦«¦«|�0| tj ||||| | | ¬¦«¦«dSdS)NzBautoincrement and existing_autoincrement only make sense for MySQLé)Ú stacklevel)rrŸr r¢ržFÚimpl)rrŸr r¢)rÚwarnr�rÚColumnNullablerÚ_server_default_is_computedÚComputedColumnDefaultÚ_server_default_is_identityÚIdentityColumnDefaultÚ ColumnDefaultÚ ColumnTypeÚ ColumnCommentÚ ColumnName)rcr“r”r•r–rgr™rr›rœržrŸr r¢r£r¤Úcls_s r=Ú alter_columnzDefaultImpl.alter_columnÌs5€ð$ Ð $Ð(>Ð(JÝ ŒIð,àð ñ ô ð ð Ð Ø �JŠJÝÔ#ØØØØ!Ø"/Ø,CØ&7Ø%5ð ñ ô ñ ô ð ð  Ð &Ð &؈BõÔ6ØÐ 7ñôð *õÔ1��ÝÔ8ØÐ 7ñôð *õÔ1�Ø!��6‘ � åÔ)�Ø �JŠJØ�ØØØ"ð ð"Ø"/Ø,CØ&7Ø%5ð ð ðð ð ñ ô ð ð Ð Ø �JŠJÝ”ØØØØ!Ø"/Ø,CØ&7Ø%5ð ñ ô ñ ô ð ð ˜%Ð Ð Ø �JŠJÝÔ"ØØØØ!Ø"/Ø,CØ&7Ø%5ð ñ ô ñ ô ð ð Ð Ø �JŠJÝ”ØØØØ!Ø"/Ø,CØ&7ðñôñ ô ð ð ð ð Ð r>Úcolumnú Column[Any]ú!Optional[Union[str, quoted_name]]cóZ—| tj|||¬¦«¦«dS©Nr)r�rÚ AddColumn)rcr“rµrs r=Ú add_columnzDefaultImpl.add_column<s-€ð � Š •4”> *¨f¸VÐDÑDÔDÑEÔEÐEÐEÐEr>c óZ—| tj|||¬¦«¦«dSr¹)r�rÚ DropColumn)rcr“rµrr¤s r=Ú drop_columnzDefaultImpl.drop_columnDs-€ð � Š •4”? :¨v¸fÐEÑEÔEÑFÔFÐFÐFÐFr>Úconstcó�—|j�| |¦«r)| tj|¦«¦«dSdSrf)Ú _create_ruler�rÚ AddConstraint©rcr¿s r=Úadd_constraintzDefaultImpl.add_constraintMsI€Ø Ô Ð %¨×);Ò);¸DÑ)AÔ)AÐ %Ø �JŠJ•vÔ+¨EÑ2Ô2Ñ 3Ô 3Ð 3Ð 3Ð 3ð &Ð %r>r#cóT—| tj|¦«¦«dSrf)r�rÚDropConstraintrÃs r=Údrop_constraintzDefaultImpl.drop_constraintQs%€Ø � Š •6Ô(¨Ñ/Ô/Ñ0Ô0Ð0Ð0Ð0r>Úold_table_nameÚnew_table_nameúUnion[str, quoted_name]cóZ—| tj|||¬¦«¦«dSr¹)r�rÚ RenameTable)rcrÈrÉrs r=Ú rename_tablezDefaultImpl.rename_tableTs9€ð � Š Ý Ô ˜^¨^ÀFÐ KÑ KÔ Kñ ô ð ð ð r>có—|j ||jd|¬¦«| t j|¦«¦«|j ||jd|¬¦«|jD])}| t j|¦«¦«Œ*|j j o |j j }|j }|r|r|  |¦«|jD]"}|j }|r|r| |¦«Œ#dS©NF)Ú checkfirstÚ _ddl_runner)ÚdispatchÚ before_createrSr�rÚ CreateTableÚ after_createÚindexesÚ CreateIndexrRÚsupports_commentsÚinline_commentsrœÚcreate_table_commentÚcolumnsÚcreate_column_comment)rcrqÚindexÚ with_commentrœrµs r=Ú create_tablezDefaultImpl.create_table^s6€Ø Œ×$Ò$Ø �4”?¨uÀ$ð %ñ ô ð ð � Š •6Ô% eÑ,Ô,Ñ-Ô-Ð-Ø Œ×#Ò#Ø �4”?¨uÀ$ð $ñ ô ð ð”]ð 2ð 2ˆEØ �JŠJ•vÔ)¨%Ñ0Ô0Ñ 1Ô 1Ð 1Ð 1ð ŒLÔ *Ð O°4´<Ô3OÐ/Oð ð”-ˆØ ð -�|ð -Ø × %Ò % eÑ ,Ô ,Ð ,à”mð 3ð 3ˆFØ”nˆGØð 3˜<ð 3Ø×*Ò*¨6Ñ2Ô2Ð2øð 3ð 3r>cóà—|j ||jd|¬¦«| t j|¦«¦«|j ||jd|¬¦«dSrÏ)rÒÚ before_droprSr�rÚ DropTableÚ after_drop©rcrqs r=Ú drop_tablezDefaultImpl.drop_tableus€Ø Œ×"Ò"Ø �4”?¨uÀ$ð #ñ ô ð ð � Š •6Ô# EÑ*Ô*Ñ+Ô+Ð+Ø Œ×!Ò!Ø �4”?¨uÀ$ð "ñ ô ð ð ð r>rÝr%cóT—| tj|¦«¦«dSrf)r�rrשrcrÝs r=Ú create_indexzDefaultImpl.create_index~s%€Ø � Š •6Ô% eÑ,Ô,Ñ-Ô-Ð-Ð-Ð-r>cóT—| tj|¦«¦«dSrf)r�rÚSetTableCommenträs r=rÚz DefaultImpl.create_table_comment�s%€Ø � Š •6Ô)¨%Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r>cóT—| tj|¦«¦«dSrf)r�rÚDropTableCommenträs r=Údrop_table_commentzDefaultImpl.drop_table_comment„s%€Ø � Š •6Ô*¨5Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r>úColumnElement[Any]cóT—| tj|¦«¦«dSrf)r�rÚSetColumnComment)rcrµs r=rÜz!DefaultImpl.create_column_comment‡s%€Ø � Š •6Ô*¨6Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r>cóT—| tj|¦«¦«dSrf)r�rÚ DropIndexrçs r=Ú drop_indexzDefaultImpl.drop_indexŠs%€Ø � Š •6Ô# EÑ*Ô*Ñ+Ô+Ð+Ð+Ð+r>TúUnion[TableClause, Table]Úrowsú List[dict]Ú multiinsertc ó4‡—t|t¦«std¦«‚|r*t|dt¦«std¦«‚|jrW|D]R}| t j‰¦«jdiˆfd„|  ¦«D¦«¤Ž¦«ŒSdS|rd|r+| t j‰¦«|¬¦«dS|D]6}| t j‰¦«jdi|¤Ž¦«Œ5dSdS)Nz List expectedrzList of dictionaries expectedc óž•—i|]I\}}|t|tj¦«s'tj||‰j|j¬¦«n|“ŒJS))r™)rƒrÚ_literal_bindparamÚcr8)Ú.0ÚkÚvrqs €r=ú z+DefaultImpl.bulk_insert..›sxø€ð ð ð ñ!%  1ðõ$.Ø !¥;Ô#Añ$ô$ð #�{Ô=Ø ! 1¨E¬G°A¬J¬Oð ñ ô ð ð "#ð ð ð r>)r|rB) rƒÚlistÚ TypeErrorr†rUr�rÚ_insert_inlineÚvaluesÚitems)rcrqrõr÷Úrows ` r=Ú bulk_insertzDefaultImpl.bulk_insert�sŽø€õ ˜$¥Ñ%Ô%ð =ݘOÑ,Ô,Ð ,Ø ð =�* T¨!¤W­dÑ3Ô3ð =ÝÐ;Ñ<Ô<Ð <Ø Œ;ð Øð ð �Ø— ’ Ø<•KÔ.¨uÑ5Ô5Ô<ð ð ð ð ð ð ð),¯ ª © ¬ ð ñ ô ð ð ñ ô ð ð ð ð ð ð ØðØ—J’JÝ#Ô2°5Ñ9Ô9Àtðñôðððð $ðð˜ØŸ š ØD�KÔ6°uÑ=Ô=ÔDÐKÐKÀsÐKÐKñôððð ð ð ðr>r"rCcój—|jj |j¦« ¦«}t jd|¦«}g}d}|D]/}t jd|¦«r|}Œ| |¦«Œ0t|d|dd…gi¦«}|r�t jd|¦«D]y}d|vrG|  d¦«\} } |   ¦«|j |   ¦«<ŒM|j  |  ¦«¦«Œz|S)Nz[\w\-_]+|\(.+?\)z^\(.*\)$rrz[^(),]+ú=)rRÚ type_compilerÚprocessr8ÚlowerÚreÚfindallÚmatchÚappendrCÚsplitr‰rGrF) rcrµÚ definitionrEÚ term_tokensÚ paren_termÚtokenr~ÚtermÚkeyÚvals r=Ú_tokenize_column_typez!DefaultImpl._tokenize_column_type³s*€Ø”\Ô/×7Ò7¸¼ ÑDÔD×JÒJÑLÔLˆ õ”Ð/°Ñ<Ô<ˆàˆ ؈ àð *ð *ˆEÝŒx˜  UÑ+Ô+ð *Ø"� � à×"Ò" 5Ñ)Ô)Ð)Ð)å˜  Aœ¨ °A°B°B¬¸¸RÑ@Ô@ˆà ð 5Ýœ  9¨jÑ9Ô9ð 5ð 5�ؘ$�;�;Ø#Ÿzšz¨#™œ‘H�C˜Ø14·²±´�F”M #§)¢)¡+¤+Ñ.Ð.à”K×&Ò& t§z¢z¡|¤|Ñ4Ô4Ð4Ð4àˆ r>Úinspector_paramsÚmetadata_paramscóX—|j|jkrdSd„|jD¦«}d |jg|jz¦«}d |jg|jz¦«}|D]=}||h |¦«s!|j|jh |¦«rdSŒ>dS)NTcó&—g|]}d„|D¦«‘ŒS)có6—h|]}| ¦«’ŒSrB)r )rüÚts r=ú z=DefaultImpl._column_types_match...ßs €Ð.Ð.Ð. 1�Q—W’W‘Y”YÐ.Ð.Ð.r>rB)rüÚbatchs r=ú z3DefaultImpl._column_types_match..ßs'€ÐOÐOÐO°5Ð.Ð.¨Ð.Ñ.Ô.ÐOÐOÐOr>ú F)rDrNÚjoinrEÚissubset)rcrrÚsynonymsÚinspector_all_termsÚmetadata_all_termsr s r=Ú_column_types_matchzDefaultImpl._column_types_matchÙsã€ð Ô " oÔ&<Ò <Ð <Ø�4àOÐO¸DÔÚinspected_paramsÚ meta_paramscót—t|j¦«t|j¦«kr|j|jkrdSt|j¦«t|j¦«kr|j|jkrdSd |j¦« ¦«}d |j¦« ¦«}|jD]_}t j||¦«}t j||¦«}|r1|r/| d¦«| d¦«krdSŒ`dS)aWe want to compare column parameters. However, we only want to compare parameters that are set. If they both have `collation`, we want to make sure they are the same. However, if only one specifies it, dont flag it for being less specific Fr"rT) ÚlenrErFr#r rOr ÚsearchÚgroup)rcr)r*ÚinspÚmetaÚregÚmiÚmms r=Ú_column_args_matchzDefaultImpl._column_args_matchïs'€õ � Ô"Ñ #Ô #¥sÐ+;Ô+BÑ'CÔ'CÒ CÐ CØÔ"Ð&6Ô&=Ò=Ð=à�5õ � Ô Ñ !Ô !¥SÐ)9Ô)>Ñ%?Ô%?Ò ?Ð ?ØÔ Ð$4Ô$9Ò9Ð9à�5à�xŠxÐ(Ô/Ñ0Ô0×6Ò6Ñ8Ô8ˆØ�xŠx˜ Ô*Ñ+Ô+×1Ò1Ñ3Ô3ˆàÔ(ð ð ˆCÝ”˜3 Ñ%Ô%ˆBÝ”˜3 Ñ%Ô%ˆBàð �bð ˜RŸXšX a™[œ[¨B¯HªH°Q©K¬KÒ7Ð7Ø�u�uøàˆtr>Úinspector_columnÚmetadata_columncóº—| |¦«}| |¦«}| ||¦«sdS| ||¦«sdSdS)z²Returns True if there ARE differences between the types of the two columns. Takes impl.type_synonyms into account between retrospected and metadata types TF)rr(r4)rcr5r6rrs r=Ú compare_typezDefaultImpl.compare_typesm€ð ×5Ò5Ð6FÑGÔGÐØ×4Ò4°_ÑEÔEˆà×'Ò'Ð(8¸/ÑJÔJð Ø�4Ø×&Ò&Ð'7¸ÑIÔIð Ø�4؈ur>có—||kSrfrB)rcr5r6Úrendered_metadata_defaultÚrendered_inspector_defaults r=Úcompare_server_defaultz"DefaultImpl.compare_server_default s€ð*Ð-FÒFÐFr>Ú conn_uniquesúSet[UniqueConstraint]Ú conn_indexesú Set[Index]Úmetadata_unique_constraintsÚmetadata_indexescó—dSrfrB)rcr=r?rArBs r=Úcorrect_for_autogen_constraintsz+DefaultImpl.correct_for_autogen_constraints)s €ð ˆr>cób—|jj|jurt|d|¦«|d<dSdS)NÚexpr)r8Ú_type_affinityr)rcÚexistingÚexisting_transferÚnew_types r=Úcast_for_batch_migratez"DefaultImpl.cast_for_batch_migrate2sC€Ø Œ=Ô '¨xÔ/FÐ FÐ FÝ(,Ø! &Ô)¨8ñ)ô)Ð ˜fÑ %Ð %Ð %ð GÐ Fr>rFrÚis_server_defaultc óR—ddddœi}t|jdd|ji|¤Ž¦«S)z†Render a SQL expression that is typically a server default, index expression, etc. .. versionadded:: 1.0.11 r�TF)r_Ú include_tablerRrB)r1r‡rR)rcrFrLr¤r�s r=Úrender_ddl_sql_exprzDefaultImpl.render_ddl_sql_expr8sT€ð °ÀuÐMÐMð ˆ õØ ˆDŒLð ð Øœ ð Ø(2ð ð ñ ô ð r>Ú inspectorrrcó—|jSrf)Úautogen_column_reflect)rcrPs r=Ú_compat_autogen_column_reflectz*DefaultImpl._compat_autogen_column_reflectKs €ØÔ*Ð*r>Úconn_fksúSet[ForeignKeyConstraint]Ú metadata_fkscó—dSrfrB)rcrTrVs r=Úcorrect_for_autogen_foreignkeysz+DefaultImpl.correct_for_autogen_foreignkeysNs €ð ˆr>có—dS)zåA hook that is attached to the 'column_reflect' event for when a Table is reflected from the database during the autogenerate process. Dialects can elect to modify the information gathered here. NrB)rcrPrqÚ column_infos r=rRz"DefaultImpl.autogen_column_reflectUrtr>có—dS)zœA hook called when :meth:`.EnvironmentContext.run_migrations` is called. Implementations can set up per-migration-run state here. NrBrvs r=Ústart_migrationszDefaultImpl.start_migrations^rtr>có@—| d|jz¦«dS)zâEmit the string ``BEGIN``, or the backend-specific equivalent, on the current connection context. This is used in offline mode and typically via :meth:`.EnvironmentContext.begin_transaction`. ÚBEGINN©rlrŠrvs r=Ú emit_beginzDefaultImpl.emit_beginfs&€ð ×Ò˜7 TÔ%<Ñ<Ñ=Ô=Ð=Ð=Ð=r>có@—| d|jz¦«dS)zãEmit the string ``COMMIT``, or the backend-specific equivalent, on the current connection context. This is used in offline mode and typically via :meth:`.EnvironmentContext.begin_transaction`. ÚCOMMITNr_rvs r=Ú emit_commitzDefaultImpl.emit_commitps&€ð ×Ò˜8 dÔ&=Ñ=Ñ>Ô>Ð>Ð>Ð>r>Útype_objr)Úautogen_contextr+úUnion[str, Literal[False]]có—dS)NFrB)rcrdres r=Ú render_typezDefaultImpl.render_typezs €ðˆur>có¨—ttj||tj¦«¦«\}}t |dd¦«}t |dd¦«}t |¦«t |¦«kr| d¦«| |j¦«||t |¦«pt |¦«t |¦«kfS)NÚalways) Ú_compare_identity_optionsrÚ_identity_attrsÚIdentityÚgetattrrVÚaddÚdifference_updaterQ)rcÚmetadata_identityÚinspector_identityÚdiffÚignoredÚ meta_alwaysÚinspector_alwayss r=Ú_compare_identity_defaultz%DefaultImpl._compare_identity_defaultsÒ€õ2Ý Ô 'Ø Ø Ý Ô Ñ "Ô "ñ  ô ‰ ˆˆgõÐ/°¸4Ñ@Ô@ˆ Ý"Ð#5°xÀÑFÔFÐå � Ñ Ô ¥Ð%5Ñ 6Ô 6Ò 6Ð 6Ø �HŠH�XÑ Ô Ð à ×Ò˜tÔ9Ñ:Ô:Ð:ð à å �‰JŒJÐ M�$Ð0Ñ1Ô1µTÐ:LÑ5MÔ5MÒMð  ð r>úTuple[Any, ...]có>—td„|jD¦«¦«S)Nc3ó$K—|] }|jV—Œ dSrf©rg)rüÚcols r=ú z/DefaultImpl.create_index_sig..žs$èè€Ð7Ð7 #�S”XÐ7Ð7Ð7Ð7Ð7Ð7r>)r‹rÛrçs r=Úcreate_index_sigzDefaultImpl.create_index_sigœs!€åÐ7Ð7¨¬Ð7Ñ7Ô7Ñ7Ô7Ð7r>c ó—d„|D¦«}t|¦«D]i}|j|vrŒ tj|¦«}|rGt jd|j›d|j›dtj›d�¦«| |¦«ŒjdS)Ncó—i|] }|j|“Œ SrBr{)rürûs r=rÿz8DefaultImpl._skip_functional_indexes..¡s€Ð@Ð@Ð@¨a ¤¨Ð@Ð@Ð@r>z@autogenerate skipping metadata-specified expression-based index z ; dialect z under SQLAlchemy z6 can't reflect these indexes so they can't be compared) rrgrÚis_expression_indexrr©r7Úsqlalchemy_versionÚdiscard)rcrBr?Úconn_indexes_by_nameÚidxÚiexs r=Ú_skip_functional_indexesz$DefaultImpl._skip_functional_indexes sÏ€Ø@Ð@°<Ð@Ñ@Ô@ÐåÐ(Ñ)Ô)ð .ð .ˆCØŒxÐ/Ð/Ð/ØÝÔ1°#Ñ6Ô6ˆCØð .Ý” ðFà”xðFðFà-1Ô-=ðFðFõ#.Ô"@ðFðFðFñôðð!×(Ò(¨Ñ-Ô-Ð-øð .ð .r>)rRrrSrTrUrVrWrXrYrZr[r5r\r])rRrr\rd)rr1r\r])rmr-r\rV)rpr,rqr&r\r])r\rT) rxryrzr{r|r}r~r5r\rrf)r‘ryrzr{r\r]) NFNNNNFNNNNN) r“r1r”r1r•rXr–r—rgr˜r™ršrr˜r›rXrœr�ržr˜rŸršr r¡r¢rXr£rXr¤rr\r])r“r1rµr¶rr·r\r])r“r1rµr¶rr˜r\r])r¿rr\r])r¿r#r\r])rÈr1rÉrÊrr·r\r])rqr&r\r])rÝr%r\r])rµrîr\r])T)rqrôrõrör÷rVr\r])rµr"r\rC)rrCrrCr\rV)r)rCr*rCr\rV)r5r¶r6r"r\rV) r=r>r?r@rAr>rBr@r\r])F)rFrrLrVr¤rr\r1)rPrr\r)rTrUrVrUr\r])r\r])rdr)rer+r\rf)rÝr%r\rx)7r?r@rAÚ__doc__r7rWrŠrNÚ__annotations__rOrQr9Ú classmethodrhrlrorsÚpropertyrwrÚ immutabledictr�rŒr´r»r¾rÄrÇrÍrßrårèrÚrírÜrórrr(r4r8r<rDrKrOrSrXrRr\r`rcrhrwr~r‡rBr>r=rIrIEs)€€€€€€ð ð ð€KàÐØÐØ,5°yÐ+AÐ*C€MÐCÐCÐCÑCØ&(ÐÐ(Ð(Ð(Ñ(à-9ÐÐ9Ð9Ð9Ñ9ððððð4ð$ð$ð$ñ„[ð$ð#ð#ð#ð#ð ð ð ð ð  ð  ð  ð  ððððñ„Xðð 7;Ø&(Ø!3 Ô!3Ñ!5Ô!5ð (ð(ð(ð(ð(ðZ7;ð+ð+ð+ð+ð+ð$(Ø@EØ"Ø&*Ø $Ø(,Ø8=Ø*.Ø.2Ø<@Ø,0Ø15ðnðnðnðnðnðh59ð FðFðFðFðFð!%ð GðGðGðGðGð4ð4ð4ð4ð1ð1ð1ð1ð59ð  ð ð ð ð ð3ð3ð3ð3ð. ð ð ð ð.ð.ð.ð.ð2ð2ð2ð2ð3ð3ð3ð3ð4ð4ð4ð4ð,ð,ð,ð,ð!ð $ð$ð$ð$ð$ðL$ð$ð$ð$ðLðððð,ððððBðððð GðGðGð ð ð ð ðððð>Cð ð ð ð ð ð&+ð+ð+ð+ð ð ð ð ð ð ð ð ð ð ð ð>ð>ð>ð>ð?ð?ð?ð?ððððð  ð ð ð:8ð8ð8ð8ð.ð.ð.ð.ð.r>rI)Ú metaclasscó —t¦«}t¦«}|D]l}t||d¦«}t||d¦«}t||d¦«} | |kr1||kr| |¦«ŒW| |¦«Œm||fSrf)Úsetrnro) Ú attributesÚ metadata_ioÚ inspector_ioÚ default_iorsÚ ignored_attrÚattrÚ meta_valueÚ default_valueÚ conn_values r=rkrk²s €õ ‰5Œ5€DÝ‘5”5€LØððˆÝ˜[¨$°Ñ5Ô5ˆ Ý  ¨D°$Ñ7Ô7ˆ ݘ\¨4°Ñ6Ô6ˆ Ø ˜Ò #Ð #ؘ]Ò*Ð*Ø× Ò  Ñ&Ô&Ð&Ð&à—’˜‘”�øØ �Ð Ðr>)>Ú __future__rÚ collectionsrr Útypingrrrrr r r r r rrÚ sqlalchemyrrrÚrrrrrÚsqlalchemy.enginerrÚsqlalchemy.engine.cursorrÚsqlalchemy.engine.reflectionrÚsqlalchemy.sql.elementsrr r!Úsqlalchemy.sql.schemar"r#r$r%r&r'Úsqlalchemy.sql.selectabler(Úsqlalchemy.sql.type_apir)r*Úautogenerate.apir+Úoperations.batchr,r-r8r/r:r‰rCrIrkrBr>r=úr§s�ðØ"Ð"Ð"Ð"Ð"Ð"Ð"à"Ð"Ð"Ð"Ð"Ð"Ø € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐàð7ØÐÐÐÐÐØÐÐÐÐÐà,Ð,Ð,Ð,Ð,Ð,Ø)Ð)Ð)Ð)Ð)Ð)Ø5Ð5Ð5Ð5Ð5Ð5Ø6Ð6Ð6Ð6Ð6Ð6Ø5Ð5Ð5Ð5Ð5Ð5Ø5Ð5Ð5Ð5Ð5Ð5Ø3Ð3Ð3Ð3Ð3Ð3Ø,Ð,Ð,Ð,Ð,Ð,Ø0Ð0Ð0Ð0Ð0Ð0Ø:Ð:Ð:Ð:Ð:Ð:Ø+Ð+Ð+Ð+Ð+Ð+Ø+Ð+Ð+Ð+Ð+Ð+Ø6Ð6Ð6Ð6Ð6Ð6Ø5Ð5Ð5Ð5Ð5Ð5Ø2Ð2Ð2Ð2Ð2Ð2à$Ð$Ð$Ð$Ð$Ð$Ø1Ð1Ð1Ð1Ð1Ð1Ø1Ð1Ð1Ð1Ð1Ð1Ø6Ð6Ð6Ð6Ð6Ð6ð ð ð ð ð ˆtñ ô ð ð(*€Ð)Ð)Ð)Ñ)à ˆ�HÐDÐDÐDÑ EÔ E€ðj .ðj .ðj .ðj .ðj .˜Hðj .ñj .ôj .ðj .ðZððððr>