§ }<ˆjU`ãóN—ddlmZddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd l mZdd l mZdd l mZddl mZddl mZddl mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddl!m"Z"ddl#m$Z$ddl%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&l0m1Z1d'd(l2m3Z3d'd)l4m5Z5d'd*l6m7Z7d'd+l6m8Z8d'd,l9m:Z:d'd-l9m;Z;d'd.l3mm?Z?dd1l@mAZAdd2lBmCZCdd3lDmEZEdd4lDmFZFdd5lmGZGdd6lmHZHdd7lmIZIdd8lJmKZKdd9lJmLZLdd:lMmNZNdd;l%mOZOd'dlTmUZUejVeW¦«ZXGd?„d@e1¦«ZYGdA„dBe(¦«ZZe*e/dC¦«dedJ„¦«Z[e*eZdC¦«dfdK„¦«Z\e*e)dC¦«dgdM„¦«Z]e*e.dC¦«dhdO„¦«Z^e;j_dP¦«e:j_dPdQ¦«e7j` adR¦«GdS„dTe7j`¦«¦«¦«¦«Zbe5jc deb¦«didX„¦«Zee5jf de¦«djd]„¦«Zgdkd^„Zhdlda„Zidmdd„ZjdS)né)Ú annotationsN)ÚAny)Úcast)ÚList)ÚOptional)ÚSequence)ÚTuple)Ú TYPE_CHECKING)ÚUnion)ÚColumn)ÚIndex)Úliteral_column)ÚNumeric)Útext)Útypes)ÚBIGINT)ÚExcludeConstraint)ÚINTEGER)Ú CreateIndex)Ú operators)Ú ColumnClause)Ú TextClause)ÚUnaryExpression)ÚFunctionElement)ÚNULLTYPEé)Ú alter_column)Ú alter_table)Ú AlterColumn)Ú ColumnComment)Úcompiles)Úformat_column_name)Úformat_table_name)Ú format_type)ÚIdentityColumnDefault)Ú RenameTable)Ú DefaultImplé)Úutil)Úrender)Úops)Ú schemaobj)ÚBatchOperations)Ú Operations)Ú sqla_compat)ÚLiteral)ÚARRAY)Ú PGDDLCompiler)ÚHSTORE)ÚJSON)ÚJSONB)ÚBinaryExpression)Ú ClauseElement)Ú quoted_name)ÚMetaData)ÚTable)Ú TypeEngine)Ú_ServerDefault)ÚAutogenContext)Ú_f_name)ÚMigrationContextcó‡—eZdZdZdZejddhfzZdZd„Zd„Z d„Z d=d>ˆfd!„ Z d"„Z d#„Z d?d(„Zd@d+„ZdAd-„ZdBd/„ZdCd4„ZdDd6„ZdEd8„ZdFd:„ZdGd<„ZˆxZS)HÚPostgresqlImplÚ postgresqlTÚFLOATzDOUBLE PRECISION)Úon_nullÚordercó—|j dd¦«pd}|D]B}||jjvr2|j t |t j¦«¦«ŒC| t|¦«¦«dS)NÚpostgresql_include©) ÚkwargsÚgetÚtableÚcÚ append_columnr ÚsqltypesÚNullTypeÚ_execr)ÚselfÚindexrGÚcols úh/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/alembic/ddl/postgresql.pyÚ create_indexzPostgresqlImpl.create_indexRs†€ð#œ\×-Ò-Ð.BÀDÑIÔIÐOÈRÐØ%ð Jð JˆCؘ%œ+œ-Ð'Ð'Ø” ×)Ò)­&°µhÔ6GÑ*HÔ*HÑIÔIÐIøØ � Š •;˜uÑ%Ô%Ñ&Ô&Ð&Ð&Ð&ócón—|jD],}|j�#|j|jvr| |¦«Œ-dS©N)Ú constraintsÚnameÚnamed_constraintsÚdrop_constraint)rQÚ batch_implrKÚ constraints rTÚprep_table_for_batchz#PostgresqlImpl.prep_table_for_batch\sK€àÔ+ð 1ð 1ˆJà”Ð+Ø”O zÔ'CÐCÐCà×$Ò$ ZÑ0Ô0Ð0øð  1ð 1rVcó®—|jr||jjurdS|}||k}|rdSd|||jfvr| S|jj}t |t ¦«rEt |jt¦«stj dd|¦«}d|›d�}t|¦«}|j   tjt|¦«|k¦«¦« S)NFz^'|'$Úú')Ú primary_keyrKÚ_autoincrement_columnÚserver_defaultÚargÚ isinstanceÚstrÚtyperÚreÚsubrÚ connectionÚscalarr/Ú_select)rQÚinspector_columnÚmetadata_columnÚrendered_metadata_defaultÚrendered_inspector_defaultÚconn_col_defaultÚdefaults_equalÚmetadata_defaults rTÚcompare_server_defaultz%PostgresqlImpl.compare_server_defaultes€ð Ô 'ð à ?Ô#8Ô#NÐNÐNà�5à5Ðà)Ð-FÒFˆØ ð Ø�5à Ø Ø %Ø Ô *ð ð ð ð &Ð%Ð %à*Ô9Ô=Ðå Ð&­Ñ ,Ô ,ð @ÝÐ.Ô3µWÑ=Ô=ð ;Ý#%¤6¨(°BÐ8HÑ#IÔ#IÐ Ø#:Ð'7Ð#:Ð#:Ð#:Ð å-Ð.>Ñ?Ô?Ð ð”?×)Ò)Ý Ô ÝÐ/Ñ0Ô0Ð4DÒDñ ô ñ ô ð ð rVNFÚ table_namerhÚ column_nameÚnullableúOptional[bool]reú%Union[_ServerDefault, Literal[False]]rZú Optional[str]Útype_úOptional[TypeEngine]ÚschemaÚ autoincrementÚ existing_typeÚexisting_server_defaultúOptional[_ServerDefault]Úexisting_nullableÚexisting_autoincrementÚkwrÚreturnÚNonec ó•—|  dd¦«}|�|€tjd¦«‚|�*| t |||||| | | ¬¦«¦«t ¦«j||f|||||| | | | dœ | ¤ŽdS)NÚpostgresql_usingz6postgresql_using must be used with the type_ parameter)rÚusingr�r‚r„) ryrerZrr€r�r‚r„r…)Úpopr)Ú CommandErrorrPÚPostgresqlColumnTypeÚsuperr)rQrwrxryrerZr}rr€r�r‚r„r…r†r‹Ú __class__s €rTrzPostgresqlImpl.alter_column�sáø€ð"—’Ð)¨4Ñ0Ô0ˆà Ð   ÝÔ#ØHñôð ð Ð Ø �JŠJÝ$ØØØØ!ØØ"/Ø,CØ&7ð ñ ô ñ ô ð ð �‰ŒÔØ Ø ð ðØ)ØØØ'Ø'Ø$;Ø/Ø#9ð ð ðð ð ð ð ð rVcóÄ—| d¦«rÂt|dttf¦«r¢t jd|d¦«}|r‡t j|td¦«|  d¦«¬¦«  ¦«}|r>|\}}||dkr/t  d||j |¦«|d=dSdSdSdSdSdS) NÚdefaultriznextval\('(.+?)'::regclass\)a+select c.relname, a.attname from pg_class as c join pg_depend d on d.objid=c.oid and d.classid='pg_class'::regclass and d.refclassid='pg_class'::regclass join pg_class t on t.oid=d.refobjid join pg_attribute a on a.attrelid=t.oid and a.attnum=d.refobjsubid where c.relkind='S' and c.relname=:seqnamer)ÚseqnamerZz^Detected sequence named '%s' as owned by integer column '%s(%s)', assuming SERIAL and omitting)rJrgrrrjÚmatchr/Ú_exec_on_inspectorrÚgroupÚfirstÚlogÚinforZ)rQÚ inspectorrKÚ column_infoÚ seq_matchr™r“Úcolnames rTÚautogen_column_reflectz%PostgresqlImpl.autogen_column_reflectÅs4€Ø �?Š?˜9Ñ %Ô %ð# 3­*Ø ˜Ô ¥'­6Ð!2ñ+ ô+ ð# 3õœØ/°¸YÔ1GñôˆIðð 3Ý"Ô5ØÝðEñ ô ð&ŸOšO¨AÑ.Ô.ðñô÷’%‘'”'ððð 3Ø'+Ñ$�G˜WØ +¨fÔ"5Ò5Ð5ÝŸšð;ð$Ø!œJØ#ñ ôðð(¨ Ð2Ð2Ð2ðG# 3ð# 3ð# 3ð# 3ð  3ð 3ð 3ð 3à5Ð5rVcóš—d„|D¦«}|D]}| |¦«Œtjs| ||¦«dSdS)NcóF—h|]}|j d¦«¯|’ŒS)Úduplicates_constraint)r™rJ)Ú.0rRs rTú zAPostgresqlImpl.correct_for_autogen_constraints..ós=€ð ð ð àØŒz�~Š~Ð5Ñ6Ô6ð Ø ð ð ð rV)Úremover/Úsqla_2Ú_skip_functional_indexes)rQÚconn_unique_constraintsÚ conn_indexesÚmetadata_unique_constraintsÚmetadata_indexesÚdoubled_constraintsÚixs rTÚcorrect_for_autogen_constraintsz.PostgresqlImpl.correct_for_autogen_constraintsës~€ð ð à%ð ñ ô Ðð &ð $ð $ˆBØ × Ò  Ñ #Ô #Ð #Ð #åÔ!ð JØ × )Ò )Ð*:¸LÑ IÔ IÐ IÐ IÐ Ið Jð JrVrRr ÚexprÚ remove_suffixcóà—| ¦«}| dd¦«}|j�5| |jj ¦«›d�d¦«}|r<|ddkr0|ddkr$|dd…}|r|ddkr |ddk°$d |vrt jd d|¦«}|r-| |¦«r|dt|¦« …}|S) Nú"raú.rú(éÿÿÿÿú)rz::z (::[\w ]+\w))ÚlowerÚreplacerKrZrjrkÚendswithÚlen)rQrRr®r¯s rTÚ_cleanup_index_exprz"PostgresqlImpl._cleanup_index_exprÿs€ð�zŠz‰|Œ|ˆØ�|Š|˜C Ñ$Ô$ˆØ Œ;Ð "à—<’< 5¤;Ô#3×#9Ò#9Ñ#;Ô#;Ð >Ð >Ð >ÀÑCÔCˆDàð �t˜A”w #’~�~¨$¨r¬(°cª/¨/ؘ˜"˜”:ˆDðð �t˜A”w #’~�~¨$¨r¬(°cª/¨/à �4ˆ<ˆ<å”6˜/¨2¨tÑ4Ô4ˆDà ð /˜TŸ]š]¨=Ñ9Ô9ð /ØÐ-�3˜}Ñ-Ô-Ð-Ð-Ô.ˆDðˆ rVÚexpr7có¸—d}t|t¦«rÂ|j€|j}nž|j}t|jt¦«r |jj}nd}|€&|tjkrd}nX|tjkrd}nE|tjkr|tjkrd}n"|tjkr|tjkrd}nt|t¦«°Â|S)Nraz ascz nulls lastz asc nulls lastz nulls first) rgrÚmodifierÚelementrÚasc_opÚ nullslast_opÚdesc_opÚ nullsfirst_op)rQr»Ú to_removeÚopÚinner_ops rTÚ_default_modifiersz!PostgresqlImpl._default_modifierssî€Øˆ ݘ�oÑ.Ô.ð ØŒ|Ð#Ø”k��à”\�ݘcœk­?Ñ;Ô;ð$Ø"œ{Ô3�H�Hà#�HØÐ#Ø�YÔ-Ò-Ð-à$*˜ ˜ Ø�yÔ5Ò5Ð5à$1˜ øð!¥IÔ$4Ò4Ð4Ø¥)Ô"8Ò8Ð8ð%6˜ ˜ à ¥IÔ$5Ò5Ð5Ø¥)Ô"9Ò9Ð9ð%3˜ Øõ;˜�oÑ.Ô.ð ð<ÐrVúTuple[Any, ...]cóH‡‡—tˆˆfd„‰jD¦«¦«S)Nc3ó¶•K—|]S}‰j‰gt|t¦«r|dfn)‰ |¦«‰ |¦«f¢RŽV—ŒTdS)raN)rºrgrhÚ_compile_elementrÆ)r¢ÚerRrQs €€rTú z2PostgresqlImpl.create_index_sig..8s–øèè€ð  ð  ðð %ˆDÔ $Øð õ" !¥SÑ)Ô)ðP�Q˜�G�Gà×/Ò/°Ñ2Ô2°D×4KÒ4KÈAÑ4NÔ4NÐOð  ð ð ð  ð  ð  ð  ð  ð  rV)ÚtupleÚ expressions)rQrRs``rTÚcreate_index_sigzPostgresqlImpl.create_index_sig7sFøø€Ýð  ð  ð  ð  ð  ðÔ&ð  ñ  ô  ñ  ô  ð rVr¾cóJ—| |jdddœ¬¦«jS)NTF)Ú literal_bindsÚ include_table)ÚdialectÚcompile_kwargs)ÚcompilerÓÚstring)rQr¾s rTrÊzPostgresqlImpl._compile_elementDs2€Ø�ŠØ”LØ-1ÀEÐJÐJðñ ô ô ð rVr;Úautogen_contextr=úUnion[str, Literal[False]]cóÔ—t|¦«j}| d¦«sdSt|d|jz¦«r$t |d|jz¦«}|||¦«SdS)Nzsqlalchemy.dialects.postgresqlFz_render_%s_type)riÚ __module__Ú startswithÚhasattrÚ__visit_name__Úgetattr)rQr}r×ÚmodÚmeths rTÚ render_typezPostgresqlImpl.render_typeJsv€õ�5‰kŒkÔ$ˆØ�~Š~Ð>Ñ?Ô?ð Ø�5å �4Ð*¨UÔ-AÑAÑ BÔ Bð 0ݘ4Ð!2°UÔ5IÑ!IÑJÔJˆDØ�4˜˜Ñ/Ô/Ð /àˆurVr3c óV—tttj||dd¦«¦«S)NÚ text_typez(.+?\(.*text_type=)©rrhr*Ú_render_type_w_subtype©rQr}r×s rTÚ_render_HSTORE_typez"PostgresqlImpl._render_HSTORE_typeWs3€õÝ Ý Ô )Ø�¨ Ð5Kñ ô ñ ô ð rVr1c óV—tttj||dd¦«¦«S)NÚ item_typez(.+?\()räræs rTÚ_render_ARRAY_typez!PostgresqlImpl._render_ARRAY_typeas2€õÝ Ý Ô )Ø�¨ °Zñ ô ñ ô ð rVr4c óV—tttj||dd¦«¦«S©NÚ astext_typez(.+?\(.*astext_type=)räræs rTÚ_render_JSON_typez PostgresqlImpl._render_JSON_typekó3€õÝ Ý Ô )Ø�¨ Ð7Oñ ô ñ ô ð rVr5c óV—tttj||dd¦«¦«Srìräræs rTÚ_render_JSONB_typez!PostgresqlImpl._render_JSONB_typeurïrV) NFNNNNNNNN)rwrhrxrhryrzrer{rZr|r}r~rr|r€rzr�r~r‚rƒr„rzr…rzr†rr‡rˆ)rRr r®rhr¯rhr‡rh)r»r7r‡rh)rRr r‡rÇ)r¾r7r‡rh)r}r;r×r=r‡rØ)r}r3r×r=r‡rh)r}r1r×r=r‡rh)r}r4r×r=r‡rh)r}r5r×r=r‡rh)Ú__name__rÚÚ __qualname__Ú __dialect__Útransactional_ddlr'Ú type_synonymsÚidentity_attrs_ignorerUr_rvrržr­rºrÆrÏrÊrárçrêrîrñÚ __classcell__©r�s@rTrArAJs–ø€€€€€Ø€KØÐØÔ-Ø Ð$Ð%ð1ñ€Mð1Ðð'ð'ð'ð1ð1ð1ð) ð) ð) ð^$(Ø@EØ"Ø&*Ø $Ø(,Ø.2Ø<@Ø,0Ø15ð3 ð3 ð3 ð3 ð3 ð3 ð3 ðj$3ð$3ð$3ðLJðJðJð(ðððð, ð ð ð ðD  ð  ð  ð  ððððð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð rVrAcó ‡—eZdZd ˆfd„ ZˆxZS) rŽrZrhrxr}r;r‡rˆc 󪕗| dd¦«}t¦«j||fi|¤Žtj|¦«|_||_dS)Nr‹)rŒr�Ú__init__rNÚ to_instancer}r‹)rQrZrxr}r†r‹r�s €rTrüzPostgresqlColumnType.__init__�sVø€ð—’�w Ñ%Ô%ˆØ�‰ŒÔ˜˜{Ð1Ð1¨bÐ1Ð1Ð1ÝÔ)¨%Ñ0Ô0ˆŒ ؈Œ ˆ ˆ rV)rZrhrxrhr}r;r‡rˆ)ròrÚrórürørùs@rTrŽrŽ€s=ø€€€€€ððððððððððrVrŽrBr¾r&Úcompilerr2r‡rhc ój—t||j|j¦«›dt||jd¦«›�S)Nz RENAME TO )rrwrr#Únew_table_name©r¾rþr†s rTÚvisit_rename_tablerŠs=€õ �H˜gÔ0°'´.ÑAÔAÐAÐAݘ( GÔ$:¸DÑAÔAÐAð ðrVc ó—t||j|j¦«›dt||j¦«›ddt ||j¦«z›d|jr d|jznd›�S)Nú zTYPE %szUSING %sra)rrwrrrxr$r}r‹rs rTÚvisit_column_typer”sq€õ �H˜gÔ0°'´.ÑAÔAÐAÐAÝ�X˜wÔ2Ñ3Ô3Ð3Ð3Ø•K ¨'¬-Ñ8Ô8Ñ8Ð8Ð8Ø&-¤mÐ;ˆ �W”]Ñ"Ð"¸Ð;ð  ðrVr c ó—d}|j�1|j |jtj¦«¦«nd}| t ||j|j¦«t||j ¦«|¬¦«S)Nz9COMMENT ON COLUMN {table_name}.{column_name} IS {comment}ÚNULL)rwrxÚcomment) rÚ sql_compilerÚrender_literal_valuerNÚStringÚformatr#rwrr"rx)r¾rþr†Úddlrs rTÚvisit_column_commentr s•€ð F€Cð Œ?Ð &ð Ô×2Ò2Ø ŒO�Xœ_Ñ.Ô.ñ ô ð ðð  ð �:Š:Ý$Ø �gÔ(¨'¬.ñ ô õ' x°Ô1DÑEÔEØð ñ ô ðrVr%c ó—t||j|j¦«›dt||j¦«›d�}|j€|dz }|S|j€$|dz }|| |j¦«z }|S|j  |j|j¦«\}}}|j}t|¦«D]T}|dkr|d|j rdndzz }Œ|d|  tjd i|t||¦«i¤Ž¦«zz }ŒU|S) Nrz DROP IDENTITYzADD ÚalwayszSET GENERATED %s ÚALWAYSz BY DEFAULTzSET %s rH)rrwrrrxr’r‚Úvisit_identity_columnÚimplÚ_compare_identity_defaultÚsortedrÚget_identity_optionsr/ÚIdentityrÞ)r¾rþr†rÚdiffÚ_ÚidentityÚattrs rTrr¶sJ€õ �H˜gÔ0°'´.ÑAÔAÐAÐAÝ�X˜wÔ2Ñ3Ô3Ð3Ð3ð €Dð„Ðà �ш؈ Ø Ô (Ð 0à �‰ˆØ �×.Ò.¨w¬Ñ?Ô?Ñ?ˆØˆ ð”\×;Ò;Ø ŒO˜WÔ<ñ ô ‰ ˆˆa�ð”?ˆÝ˜4‘L”Lð ð ˆDØ�xÒÐØÐ+Ø (¤ÐA�H�H°\ññ��𘠠H×$AÒ$AÝÔ(ÐKÐK¨Dµ'¸(ÀDÑ2IÔ2IÐ+JÐKÐKñ%ô%ññ��ðˆ rVÚcreate_exclude_constraintÚbatch_create_exclude_constraintÚexclude_constraintcóz—eZdZdZdZ d"d#d„Zed$d„¦«Z d%d&d„Zed'd„¦«Z ed(d!„¦«Z dS))ÚCreateExcludeConstraintOpz0Represent a create exclude constraint operation.ÚexcludeNÚconstraint_nameúsqla_compat._ConstraintNamerwúUnion[str, quoted_name]ÚelementsúIUnion[Sequence[Tuple[str, str]], Sequence[Tuple[ColumnClause[Any], str]]]Úwhereú&Optional[Union[BinaryExpression, str]]rr|Ú_orig_constraintúOptional[ExcludeConstraint]r‡rˆc óh—||_||_||_||_||_||_||_dSrX)r"rwr%r'rr)r†)rQr"rwr%r'rr)r†s rTrüz"CreateExcludeConstraintOp.__init__ãs;€ð /ˆÔØ$ˆŒØ ˆŒ ؈Œ ؈Œ Ø 0ˆÔ؈ŒˆˆrVr^rc óÒ—tj|¦«}||j|jd„|jD¦«t d|j¦«|j||j|j|j ¬¦ « S)Ncó—g|] \}}}||f‘Œ SrHrH)r¢r®rZrÄs rTú z=CreateExcludeConstraintOp.from_constraint..s2€ð ð ð á"�D˜$ ð�r� ð ð ð rVr()r'rr)Ú deferrableÚ initiallyr‹) r/Ú_table_for_constraintrZÚ _render_exprsrr'rr/r0r‹)Úclsr^Úconstraint_tables rTÚfrom_constraintz)CreateExcludeConstraintOp.from_constraintøsŒ€õ'Ô<¸ZÑHÔHÐØˆsØ ŒOØ Ô !ð ð à&0Ô&>ð ñ ô õØ8¸*Ô:Jñôð$Ô*Ø'Ø!Ô,Ø Ô*ØÔ"ð ñ ô ð rVÚmigration_contextúOptional[MigrationContext]cóh—|j�|jStj|¦«}| |j|j¬¦«}t |j|j|j dœ|j ¤Ž}|j D].\}}}|  t|t¦«¦«Œ/| |¦«|S)N)r)rZr')r)r,Ú SchemaObjectsrKrwrrr%r"r'r†r2rMr rÚappend_constraint)rQr6Ú schema_objÚtÚexclr®rZÚopers rTÚ to_constraintz'CreateExcludeConstraintOp.to_constraintsË€ð Ô Ð ,ØÔ(Ð (ÝÔ,Ð->Ñ?Ô?ˆ Ø × Ò ˜Tœ_°T´[Ð Ñ AÔ AˆÝ Ø Œ]ØÔ%Ø”*ð ð ðŒgð  ð ˆðÔ ð  4ð 4ñ Ø Ø Ø à �OŠO�F 4­Ñ2Ô2Ñ 3Ô 3Ð 3Ð 3Ø ×Ò˜DÑ!Ô!Ð!؈ rVÚ operationsr.rhrr†úOptional[Table]cóB—||||fi|¤Ž}| |¦«S)aØIssue an alter to create an EXCLUDE constraint using the current migration context. .. note:: This method is Postgresql specific, and additionally requires at least SQLAlchemy 1.0. e.g.:: from alembic import op op.create_exclude_constraint( "user_excl", "user", ("period", "&&"), ("group", "="), where=("group != 'some group'"), ) Note that the expressions work the same way as that of the ``ExcludeConstraint`` object itself; if plain strings are passed, quoting rules must be applied manually. :param name: Name of the constraint. :param table_name: String name of the source table. :param elements: exclude conditions. :param where: SQL expression or SQL string with optional WHERE clause. :param deferrable: optional bool. If set, emit DEFERRABLE or NOT DEFERRABLE when issuing DDL for this constraint. :param initially: optional string. If set, emit INITIALLY when issuing DDL for this constraint. :param schema: Optional schema name to operate within. )Úinvoke)r3r@r"rwr%r†rÄs rTrz3CreateExcludeConstraintOp.create_exclude_constraint$s4€ðVˆS� *¨hÐ =Ð =¸"Ð =Ð =ˆØ× Ò  Ñ$Ô$Ð$rVr-cót—|jj|d<|||jj|fi|¤Ž}| |¦«S)a3Issue a "create exclude constraint" instruction using the current batch migration context. .. note:: This method is Postgresql specific, and additionally requires at least SQLAlchemy 1.0. .. seealso:: :meth:`.Operations.create_exclude_constraint` r)rrrwrC)r3r@r"r%r†rÄs rTrz9CreateExcludeConstraintOp.batch_create_exclude_constraintRsF€ð&"”Ô-ˆˆ8‰ Ø ˆS� *¤/Ô"<¸hÐ MÐ MÈ"Ð MÐ MˆØ× Ò  Ñ$Ô$Ð$rV)NNN)r"r#rwr$r%r&r'r(rr|r)r*r‡rˆ)r^rr‡r rX)r6r7r‡r) r@r.r"rhrwrhr%rr†rr‡rA)r@r-r"rhr%rr†r) ròrÚróÚ__doc__Úconstraint_typerüÚ classmethodr5r?rrrHrVrTr r ÙsÅ€€€€€ð ;Ð:à€Oð9=Ø $Ø8<ðððððð*ð ð ð ñ„[ð ð,?Cðððððð,ð+%ð+%ð+%ñ„[ð+%ðZð%ð%ð%ñ„[ð%ð%ð%rVr r×r=rÄcóJ—t| ¦«|d¬¦«S)NT)Úalter)Ú_exclude_constraintr?)r×rÄs rTÚ_add_exclude_constraintrKjs%€õ ˜r×/Ò/Ñ1Ô1°?È$Ð OÑ OÔ OÐOrVr^rÚnamespace_metadatar9có\—tjd||¦«}|dur|St||d¦«S)Nr!F)r*Ú_user_defined_renderrJ)r^r×rLÚrendereds rTÚ!_render_inline_exclude_constraintrPqsA€õ Ô*Ø�:˜ñô€Hð�uÐÐØˆå ˜z¨?¸EÑ BÔ BÐBrVcóB—|j}|�| d¦«dS)Nz*from sqlalchemy.dialects import postgresqlz postgresql.)ÚimportsÚadd)r×rRs rTÚ_postgresql_autogenerate_prefixrT€s(€àÔ%€GØÐØ� Š Ð@ÑAÔAÐAØ ˆ=rVrIÚboolcó쇇‡—gЉj}‰jr)‰ dt‰j¦«f¦«‰jr)‰ dt‰j¦«f¦«‰jr)‰ dt‰j¦«f¦«|sA|r?‰jjr3‰ dtj ‰jj¦«f¦«|s6‰j r/‰ dtj ‰‰j ¦«f¦«ˆˆˆfd„}|r£ttj ‰‰j ¦«¦«g}|s/|ttj ‰jj ¦«¦«gz }|  |¦«¦«dtj‰¦«d |¦«d œzS|¦«}d t!‰¦«d |¦«d œzS) Nr/r0r‹rrZcóÚ•—ˆfd„‰jD¦«}‰j�0| dtj‰j‰¦«z¦«| d„‰D¦«¦«|S)NcóF•—g|]\}}}dt|‰¦«›d|›d�‘ŒS)r³ú, rµ)Ú_render_potential_column)r¢ÚsqltextrZÚopstringr×s €rTr.zC_exclude_constraint..do_expr_where_opts..ŸsOø€ð ð ð ñ (�˜˜x˜xõ)¨°/ÑBÔBÐBÐBØ��ð ð ð ð rVzwhere=%scó"—g|] \}}|›d|›�‘Œ S)ú=rH)r¢ÚkÚvs rTr.zC_exclude_constraint..do_expr_where_opts..®s'€Ð7Ð7Ð7©$¨!¨Q    1 1Ð%Ð7Ð7Ð7rV)r2r'Úappendr*Ú_render_potential_exprÚextend)Úargsr×r^Úoptss €€€rTÚdo_expr_where_optsz/_exclude_constraint..do_expr_where_optsžs™ø€ð ð ð ð ð ,6Ô+Cð  ñ ô ˆð Ô Ð 'Ø �KŠKØÝÔ/ØÔ$ oñôññ ô ð ð � Š Ð7Ð7°$Ð7Ñ7Ô7Ñ8Ô8Ð8؈ rVz-%(prefix)screate_exclude_constraint(%(args)s)rY)Úprefixrdz%%(prefix)sExcludeConstraint(%(args)s))Ú _has_batchr/rarhr0r‹rKrr*Ú_identrZÚ_render_gen_nameÚreprrcÚ_alembic_autogenerate_prefixÚjoinrT)r^r×rIÚ has_batchrfrdres`` @rTrJrJˆs/øøø€ð FH€DàÔ*€IàÔð@Ø � Š �\¥3 zÔ'<Ñ#=Ô#=Ð>Ñ?Ô?Ð?ØÔð>Ø � Š �[¥# jÔ&:Ñ";Ô";Ð<Ñ=Ô=Ð=ØÔð6Ø � Š �W�c *Ô"2Ñ3Ô3Ð4Ñ5Ô5Ð5Ø ðH˜ðH :Ô#3Ô#:ðHØ � Š �X�vœ}¨ZÔ-=Ô-DÑEÔEÐFÑGÔGÐGØ ð �Z”_ð Ø � Š Ø •VÔ,¨_¸j¼oÑNÔNÐ Oñ ô ð ðððððððð& ð å •Ô(¨¸*¼/ÑJÔJÑ KÔ Kð ˆðð AØ •T�&œ-¨ Ô(8Ô(=Ñ>Ô>Ñ?Ô?Ð@Ñ @ˆDØ � Š Ð&Ð&Ñ(Ô(Ñ)Ô)Ð)Ø>ÝÔ9¸/ÑJÔJØ—I’I˜d‘O”OðB ðB ñ ð ð "Ð!Ñ#Ô#ˆØ6Ý5°oÑFÔFØ—I’I˜d‘O”Oð: ð: ñ ð rVÚvalueúGUnion[ColumnClause[Any], Column[Any], TextClause, FunctionElement[Any]]c óä—t|t¦«r+|jrd}nd}|tj|¦«|jdœzStj||t|ttf¦«¬¦«S)Nz"%(prefix)sliteral_column(%(name)r)z%(prefix)scolumn(%(name)r))rgrZ)Ú wrap_in_text) rgrÚ is_literalr*Ú_sqlalchemy_autogenerate_prefixrZrbrr)ror×Útemplates rTrZrZÄs‹€õ �%�Ñ&Ô&ð Ø Ô ð 4à;ˆHˆHà3ˆHàÝÔ<¸_ÑMÔMØ”Jð ð ñ ð õ Ô,Ø Ø Ý# E­J½Ð+HÑIÔIð ñ ô ð rV)r¾r&rþr2r‡rh)r¾rŽrþr2r‡rh)r¾r rþr2r‡rh)r¾r%rþr2)r×r=rÄr r‡rh)r^rr×r=rLr9r‡rh)r×r=r‡rh)r^rr×r=rIrUr‡rh)rorpr×r=r‡rh)kÚ __future__rÚloggingrjÚtypingrrrrrr r r Ú sqlalchemyr r rrrrrNÚsqlalchemy.dialects.postgresqlrrrÚsqlalchemy.schemarÚsqlalchemy.sqlrÚsqlalchemy.sql.elementsrrrÚsqlalchemy.sql.functionsrÚsqlalchemy.typesrÚbaserrrr r!r"r#r$r%r&rr'rar)Ú autogenerater*r@r+r,Úoperations.baser-r.r/r0Ú$sqlalchemy.dialects.postgresql.arrayr1Ú#sqlalchemy.dialects.postgresql.baser2Ú%sqlalchemy.dialects.postgresql.hstorer3Ú#sqlalchemy.dialects.postgresql.jsonr4r5r6r7r8Úsqlalchemy.sql.schemar9r:Úsqlalchemy.sql.type_apir;r<Úautogenerate.apir=Úautogenerate.renderr>Úruntime.migrationr?Ú getLoggerròr˜rArŽrrrrÚregister_operationÚAddConstraintOpÚregister_add_constraintr Ú renderersÚ dispatch_forrKÚ_constraint_renderersrPrTrJrZrHrVrTúr“sµðØ"Ð"Ð"Ð"Ð"Ð"à€€€Ø € € € ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐàÐÐÐÐÐØÐÐÐÐÐØ%Ð%Ð%Ð%Ð%Ð%ØÐÐÐÐÐØÐÐÐÐÐØ(Ð(Ð(Ð(Ð(Ð(Ø1Ð1Ð1Ð1Ð1Ð1Ø<Ð<Ð<Ð<Ð<Ð<Ø2Ð2Ð2Ð2Ð2Ð2Ø)Ð)Ð)Ð)Ð)Ð)Ø$Ð$Ð$Ð$Ð$Ð$Ø0Ð0Ð0Ð0Ð0Ð0Ø.Ð.Ð.Ð.Ð.Ð.Ø3Ð3Ð3Ð3Ð3Ð3Ø4Ð4Ð4Ð4Ð4Ð4Ø%Ð%Ð%Ð%Ð%Ð%àÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ$Ð$Ð$Ð$Ð$Ð$Ø#Ð#Ð#Ð#Ð#Ð#ØÐÐÐÐÐØ'Ð'Ð'Ð'Ð'Ð'ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ!Ð!Ð!Ð!Ð!Ð!ØÐÐÐÐÐØ"Ð"Ð"Ð"Ð"Ð"Ø-Ð-Ð-Ð-Ð-Ð-Ø(Ð(Ð(Ð(Ð(Ð(ØÐÐÐÐÐàð5ØÐÐÐÐÐà:Ð:Ð:Ð:Ð:Ð:ØAÐAÐAÐAÐAÐAØ<Ð<Ð<Ð<Ð<Ð<Ø8Ð8Ð8Ð8Ð8Ð8Ø9Ð9Ð9Ð9Ð9Ð9Ø8Ð8Ð8Ð8Ð8Ð8Ø5Ð5Ð5Ð5Ð5Ð5Ø3Ð3Ð3Ð3Ð3Ð3Ø.Ð.Ð.Ð.Ð.Ð.Ø+Ð+Ð+Ð+Ð+Ð+Ø2Ð2Ð2Ð2Ð2Ð2à$Ð$Ð$Ð$Ð$Ð$Ø1Ð1Ð1Ð1Ð1Ð1Ø-Ð-Ð-Ð-Ð-Ð-Ø4Ð4Ð4Ð4Ð4Ð4ð€gÔ˜Ñ!Ô!€ðs ðs ðs ðs ðs �[ñs ôs ðs ðl ðððð˜;ñôð𠀈+�|Ñ$Ô$ðððñ%Ô$ðð €Ð   Ñ-Ô-ðððñ.Ô-ð𠀈-˜Ñ&Ô&ðððñ'Ô&ðð* €Ð  Ñ.Ô.ðððñ/Ô.ððD€ÔÐ:Ñ;Ô;Ø#€Ô#ØÐ!BñôðÔ×,Ò,Ð-AÑBÔBðI%ðI%ðI%ðI%ðI% Ô 3ñI%ôI%ñCÔBñôñ<Ô;ð I%ðXÔ×ÒÐ8Ñ9Ô9ðPðPðPñ:Ô9ðPð Ô×*Ò*Ð+<Ñ=Ô=ð Cð Cð Cñ>Ô=ð Cððððð9 ð9 ð9 ð9 ðx ð ð ð ð ð rV