|L i| ddlmZddlmZddlZddlmZddlmZddlmZddlm Z ddlm Z dd lm Z dd lm Z dd lm Z dd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z e r~ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%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&m0Z0dd'l1m2Z2dd(l3m4Z4dd)l5m6Z6dd*l7m8Z8dd+l9m:Z:dd,l9m;Z;d-Z< dcd.Z=ddd/Z> ded0Z?ejxZAZB dfd1ZC dgd2ZD dhd3ZEeBjejv did4ZGeBjej djd5ZIeBjej dkd6ZKeBjejdld7ZMeBjejdmd8ZO dnd9ZPeBjejdod:ZReBjejdpd;ZTeBjej dqd<ZVeBjej drd=ZXeBjejd>ZZeBjejd?Z\eBjej dsd@Z^eBjejdtdAZ`eBjejdudBZbeBjej dvdCZdGdDdEZedwdFZfdGdHdHdI dxdJZg dydKZh dzdLZidMZjd{dNZkd{dOZl d|dPZm d}dQZnd~dRZo d ddSZp ddTZq ddUZrd{dVZs d ddWZtddXZu ddYZv d ddZZwejZx dd[Zyexjej^ dd\Zz dd]Z{ dd^Z|exjejX dd_Z}exjej` dd`Z~exjejN ddaZeBjejddbZeAjZBy)) annotations)StringION)Any)cast)Dict)List)Optional)Tuple) TYPE_CHECKING)Union) PythonPrinter)schema)sql)types)_DialectArgView)conv)Label) quoted_name)util)ops) sqla_compat)Literal)Computed)Identity) ColumnElement) TextClause)CheckConstraint)Column) Constraint) FetchedValue) ForeignKey)ForeignKeyConstraint)Index)MetaData)PrimaryKeyConstraint)UniqueConstraint)ARRAY) TypeEngine)AutogenContext)Config)MigrationScript)ModifyTableOpscvt|trtt||St j |SN) isinstancer_f_name_alembic_autogenerate_prefixrconstraint_name_or_none)autogen_contextnames a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/alembic/autogenerate/render.py_render_gen_namer8;s2$3ODdKK22488ctjdtjjd|j }tjdtjjd|}|S)N^ z +$)recompileMsubstrip)texts r7_indentrDEsR ::dBDD ! % %fd 3 9 9 ;D ::fbdd # ' 'D 1D Kr9c.|j}t|j|jD]I\}}t t ||||j <t t ||||j<Kdjt||d<y)N imports) rGzipupgrade_ops_listdowngrade_ops_listrD_render_cmd_body upgrade_tokendowngrade_tokenjoinsorted)r5migration_script template_argsrG upgrade_ops downgrade_opss r7 _render_python_into_templatevarsrTKs %%G&)))+;+N+N' " ]4; [/ :4 k//08? ]O <8 m334   $yy9M)r9cBt}t|}|jdd}|jD]5}t ||}|xs t |}|D]}|j|7|s|jd|jd|j S)Nz=# ### commands auto generated by Alembic - please adjust! ###Fpassz# ### end Alembic commands ###)rr writeliner render_opboolgetvalue) op_containerr5bufprinter has_linesoplineslines r7rKrKas *CC G GI$/2.,e  $D   d # $ $ &! 67 <<>r9chtj|}tj|||}|Sr0) renderersdispatchrto_list)r5r_rendererr`s r7rXrX|s.!!"%H LL/26 7E Lr9c8djt||S)NrF)rNrXr5r_s r7render_op_textris 99Y3 44r9c|j}|jdd}|jrg}|r|j5|j d|j d|j d|jD]}t||}|j|!|j dddd|S|jD]}t||}|j|!|SgS#1swY|SxYw)Nrender_as_batchFzwith op.batch_alter_table(z , schema=z) as batch_op:r=) optsgetr _within_batchappend table_namerrXextend)r5r_rlrkr`t_opt_liness r7_render_modify_tablerts   Dhh0%8O vv  ..0 ! }}bii1FF*D'>GLL)* R  !  &#OT: W% &  ! ! s A,C''C1c&|jrd}nd}|jt||j|jd|jznd|j d|j znd|j d|j zdSddS)NzV{prefix}create_table_comment( {indent}{comment}, {indent}existing_comment={existing} )z{prefix}create_table_comment( {indent}'{tname}', {indent}{comment}, {indent}existing_comment={existing}, {indent}schema={schema} )%r'%s'r<)prefixtnamecommentexistingrindent) _has_batchformatr3rprzexisting_commentrr5r_templs r7_render_create_table_commentrs!!     <<+O<mm%'ZZ%;rzz!"". 2&& &%'YY%:v !   AE   r9c|jrd}nd}|jt||j|jd|jznd|j d|j zdSddS)NzA{prefix}drop_table_comment( {indent}existing_comment={existing} )zm{prefix}drop_table_comment( {indent}'{tname}', {indent}existing_comment={existing}, {indent}schema={schema} )rvrwr<)rxryr{rr|)r}r~r3rprrrs r7_render_drop_table_commentrs!!     <<+O<mm"". 2&& &%'YY%:v !   AE   r9c |j}|jDcgc]}t||c}Dcgc]}|r|c}t|jDcgc]}t |||j c}Dcgc]}||c}z}t|tkDrddj|zdz}ndj|}dt|jt||dz}|jr|dt|jzz }|j} | r|dt| zz }|j} | r|d| z }t|j D]*} |d| j#d d d |j | z },|j$r*d jd |j$D} |d| zz }|j&|dt)|j&zz }|dz }|Scc}wcc}wcc}wcc}w)Nz*[, ]z.%(prefix)screate_table(%(tablename)r, %(args)s) tablenamerxargsz , schema=%rz , comment=%rz, info= _=, c3&K|] }d|z yw)rwN).0ps r7 z_add_table..sAAVaZAz, prefixes=[%s]z, if_not_exists=%rz ))to_tablecolumns_render_columnrO constraints_render_constraint_namespace_metadatalenMAX_PYTHON_ARGSrN_identrpr3rrzinfokwreplace _prefixes if_not_existsrY) r5r_tablecolconsrconsrargs_strrCrzrkprefixess r7 _add_tablers KKME =BMM 58N3 0       "-- #/2+A+A        D& 4y?"%**T**S0::d# <BMM*.?@ D  yy  !222mmG &/11 ::D  (4(## BEE]= aiiS12558<<= 99AAA "X-- # %R-=-=(>>>EMD Kc   sG0 G5G: : G? cdt|t|jdz}|jr|dt|jzz }|j|dt |jzz }|dz }|S)Nz%(prefix)sdrop_table(%(tname)r)rxry , schema=%rz, if_exists=%r))r3rrpr if_existsrY)r5r_rCs r7 _drop_tabler"sw +.? &/ D yy ryy 111 ||  4 #555CKD Kr9c r|jDcgc]\}}|dt||c}}Scc}}w)Nr)items_render_potential_expr)r5dialect_kwargskeyvals r7_render_dialect_kwargs_itemsr2sE ',,.  C %q'_=>?  s3c r|j}|j}|rd}nd}|jJt||j}|j '|j dt|j z|t|t||jt|jjdjt|||jxsd|jjr"dt|jjznd|rddj|znddz}|S) NzL%(prefix)screate_index(%(name)r, [%(columns)s], unique=%(unique)r%(kwargs)s)za%(prefix)screate_index(%(name)r, %(table)r, [%(columns)s], unique=%(unique)r%(schema)s%(kwargs)s)zif_not_exists=%rrFrr=)rxr6rruniquerkwargs)to_indexr}rrrrrorYr3r8r6rrN_get_index_rendered_expressionsrrr5r_index has_batchtmplrlrCs r7 _add_indexr;s KKME**I +  5 ;; "" " '9M9M ND # &b.>.>)??@ .? %**= (()99 +E? C ,,'%{{!!VEKK$6$67 7,0$4(b D Kr9c |j}|j}|rd}nd}t||j}|j'|j dt |jz|t|t||jt|j|jrdt|jznd|rddj|znddz}|S)Nz(%(prefix)sdrop_index(%(name)r%(kwargs)s)zM%(prefix)sdrop_index(%(name)r, table_name=%(table_name)r%(schema)s%(kwargs)s)z if_exists=%rrr=r)rxr6rprr)rr}rrrrorYr3r8 index_namerrprrNrs r7 _drop_indexrcs KKME**I9 =  (9M9M ND || NT",,%778 .? "--@R]]+:<))MF299$55,0$4(b  D Kr9c:t|j|dgS)NT)_uq_constraint to_constraintrhs r7_add_unique_constraintr}s 2++- E FFr9c R|j}tt||jg}|js-|j tt |j|jtt |jt|jDcgc] }t |c}t|jDcgc] }t |c}ggd}|js|jdd|D]9}||jvs|j|}|$|j |d|;t||j}dt!|dj#||rddj#|zdzSddzScc}wcc}w) N)referent_schemaonupdateondelete initially deferrable use_altermatchr source_schemarz8%(prefix)screate_foreign_key(%(args)s%(dialect_kwargs)s)rr=)rxrr)rreprr8constraint_namer}ror source_tablerqreferent_table local_cols remote_colsinsertrrrr3rN) r5r_ constraintrrrrvaluers r7_add_fk_constraintrsz!!#J !/23E3EF G HD  % % D012KK ))* + 7#&+7 8 8#&+8 9 F  % % a) 2 :EE!HE  q%01 2 222N F.? $0>D499^, , I EG I 588s %FF$ctr0NotImplementedErrorrr5s r7_add_pk_constraintr  r9ctr0rrs r7_add_check_constraintrrr9cDt|}t||j}|jrt |jnd}|j rt |j nd}|j }g}|jt||jsC|jtt |j||jd|||jd|||jd||ddj|dS)Nschema=type_=z if_exists=zdrop_constraint(rr) r3r8rrrconstraint_typerrorr}rprN)r5r_rxr6rtype_r params_strss r7_drop_constraintrs*/ :F OR-?-? @D"$))VBII F*,*<*t|tr.t|jtur|d|jdzS|St|St|S)N)rrliteral_columnrC(rz.label() r1r ClauseElementmigration_contextimplrender_ddl_sql_expr_sqlalchemy_autogenerate_prefixrtyper6r r) rr5rrrsql_textrxelement value_strs r7rres%**+"4499MM %6N  4_EF*2&G!(7)1XL:Iue,$+ WUZZN!#<<<  > !E{r9c |jDcgc]I}t|tjrt t t |ddn t||dKc}Scc}w)Nr6T)r) expressionsr1 sa_schemarrrgetattrr)idxr5exps r7rrsa??   #y//0 VT23 4'_tL M  sAA c g}|j}|jr|jd|jf|jr|jd|jf|sH|rF|jj r0|jdt |jj f|s3|jr'|jdt||jft||j}|rtt||jg}|s,|tt |jjgz }|jt|jDcgc]}t |jc}|j|D cgc] \}} |d| c} }|j|dt|dj|dzS|jDcgc] }tt |j"}}|j|D cgc] \}} |d| c} }|j|d t!|dj|dzScc}wcc} }wcc}wcc} }w) Nrrrr6rz,%(prefix)screate_unique_constraint(%(args)s)rrxrz$%(prefix)sUniqueConstraint(%(args)s))r}rrorrrrr6r8rrrrrqr3rNr) rr5alterrlrdialect_optionsrrrvs r7rrs #%D**I \:#8#89: [*"6"678 :#3#3#:#: Xvj&6&6&=&=>?@ Z__ %ozG H 322O %ozGHI T&!1!1!6!6789 9D Dj6H6HIs&*IJK $7$!Q1%78 O$=2?CIIdOA   3=2D2DE3VCHH%&EE $7$!Q1%78 O$55oFIIdO9   J7F7s$I4 I9 3%I?*J cF|jd}|d|jzS|S)Nuser_module_prefixz%s.)rlr )r5targetrxs r7_user_autogenerate_prefixr-s.  ! !"6 7F ~v(((( r9c(|jdxsdS)Nsqlalchemy_module_prefixr=rlr5s r7rrs    : ; ArAr9cB|jry|jdxsdS)Nz batch_op.alembic_module_prefixr=)r}rlr1s r7r3r3s%!!##$;<BBr9cbd|jvr!|jd}|r||||}|dur|Sy)N render_itemFr0)robject_r5renderrs r7_user_defined_renderr8sC,,, %%m4 eWo>Hu$ r9ctd||}|dur|Sg}g}|jrRt|j|}|r:t|jr|j |n|j d|f|j :|j t jk7r|j d|j f|j|j d|jf|jr|j d|jf|j}|r|j dd|zfd t|t|jt|j||r+d j!|Dcgc] }t#|c}d znd d j!|Dcgc] \}}|d |c}}|j$j'D cgc]\} }| d t)||c}} zd zScc}wcc}}wcc}} w)NrFrrrsystemrzrvz8%(prefix)sColumn(%(name)r, %(type)s, %(args)s%(kwargs)s)rr=r)rxr6rrr)r8rr*_should_render_server_default_positionallyrorrAUTOINCREMENT_DEFAULTrr:rzrrr6rrrNr rrr) rr5rrrlrzargkwnamerrs r7rrs$HfoFHuD"$D )  ! !?  9%% H% -x89 (  K$E$E E _f&:&:;< " Z12 }} Xv}}-.nnG Yw/0 F1/Bv{{#6;;8@D t43s845<" II<@A[VSFC(A%+MM$7$7$9!S23HJ  I 5Bs7G>$HH cZtj|xstj|Sr0)r_server_default_is_computed_server_default_is_identity)rs r7r;r;s-  2 2  A  0 0 @Ar9cTtd||}|dur|Stj|rtt d||Stj |rt t d||St|tjr?t|jtr |j}n=t|j|dSt|tjr t|St|tr"|r tt!j"dd|}t t|S) NrFrrT)rz^'|'$r=)r8rr@_render_computedrrA_render_identityr1r! DefaultClauser=r rr!_render_fetched_valuerr>rA)defaultr5repr_rs r7rrs$$4gOHu..w7Z 9?KK  0 0 9Z 9?KK GY44 5 gkk3 'kkG) _  GY33 4$_55'3ErvvhG45 W r9ct|j|d}i}|j|j|d<dt||dj d|j DdzS)NFr persistedz(%(prefix)sComputed(%(text)s, %(kwargs)s)rc3&K|] }d|z ywz%s=%sNrrpairs r7rz#_render_computed..FGWt^Gr)rxrCr)rsqltextrKrrNr)computedr5rCrs r7rCrC9ss "/5 DF%&00{ 51/B99G GG9 r9ctj|d}dt|djd|j DdzS)NT)rz%(prefix)sIdentity(%(kwargs)s)rc3&K|] }d|z ywrMrrNs r7rz#_render_identity..SrPr)rxr)r_get_identity_options_dictrrNr)identityr5rs r7rDrDJsM 3 3F ,1/B99G GG/ r9c"ddt|izS)Nz%(prefix)sFetchedValue()rx)rr1s r7rFrFWs %1/B) r9ctd||}|dur|St|jdr'|jjj ||}nd}t |j }|j}|s!tj|r t||S|jdrLtjd|}|J|jd}||jd|z|r|S|d|S|r|S|jd rMd |j zt#vr#t#d |j z} | ||St%|} | |St'||} | |S) NrFrsqlalchemy.dialectssqlalchemy\.dialects\.(\w+)z"from sqlalchemy.dialects import %s.z sqlalchemy.z_render_%s_type)r8hasattrrr render_typerr rGr_type_has_variants_render_Variant_type startswithr>rgroupadd__visit_name__globalsrr-) rr5_skip_variantsrimpl_rtmodrGrdnamefnrxs r7rr]sj $FE?CHu00&9!3388DD ?  u+ C%%G k<rArrr rarrbr) rr5attrnameregexprx outer_repr inner_type inner_reprsub_type outer_typerhrris r7rmrmseJ$/Jj!J Wj9J'%2ODH+Wx-?LJ ,, u+ C ~~+,7=    A,,  %0A,,r9c tj|}||||S#t$r tjd|zd|zcYSwxYw)Nz(No renderer is established for object %rz[Unknown Python object %r])_constraint_renderersrd ValueErrorrwarn)rr5namespace_metadatarfs r7rrsX I(11*=  O5GHH 9 rs r7_render_primary_keyrs $M:OHu    D T*?JOOLM N  61/B #-#5#5 6aT!&&\ 6:>?;63&#&? @ 9  7?s C &C c|j}|jd}|dd\}}|t|dk(r|d|}ndj|dd}|jsq|j e|j j O|M||jvr?|j|jj|}|t|j}|d|}|S)zxImplement a 'safe' version of ForeignKey._get_colspec() that won't fail if the remote table can't be resolved. r\Nrr) _get_colspecsplitrrN link_to_nameparentrtablesrrmrr6) fkmetadata_schemarcolspectokensrycolnametable_fullnamers r7 _fk_colspecrsooG ]]3 FBC[NE7"s6{a'7$3U;&2,/ OO II ! IIOO '  *"4";";;$++N;==AA'JC *'1G Nr9c^|jr&|jdt|jf|jr&|jdt|jf|jr&|jdt|jf|j r&|jdt|j f|j r&|jdt|j f|jr'|jdt|jfyy)Nrrrrrr)rrorrrrrr)rrls r7_populate_render_fk_optsrs Zj&9&9!:;< Zj&9&9!:;< [$z';';"<=> \4 (=(=#>?@ [$z';';"<=> Wd:#3#3456r9c td||}|dur|Sg}|jr0|jdtt ||jft || j nddt|djd|jDdjfd|jDdj|Dcgc] \}}|d|c}}d zScc}}w) N foreign_keyFr6zC%(prefix)sForeignKeyConstraint([%(cols)s], [%(refcols)s], %(args)s)rc3lK|],}tt|jj.ywr0)rrrr6)rfs r7rz&_render_foreign_key..Cs'01VAHHMM*+s24c3JK|]}tt|ywr0)rr)rrapply_metadata_schemars r7rz&_render_foreign_key..Fs)![$9;MNO!s #r)rxcolsrefcolsr) r8r6rorr8rrrrNelements)rr5rrrlr>rrs ` @r7_render_foreign_keyr)s $M:OHu D T*?JOOLM N Z.&8%C!! #6oFII5?5H5Hyy!#,,!II<@A[VSFC(A  BsC-cBtd||}|dur|St||dS)NrF)r8r)rr5rrs r7_render_unique_constraintrQs. $Hj/JHu *ou ==r9c td||}|dur|S|jrEt|jdr/t|jjt j ryg}|jr0|jdtt||jfdt||rddjd|Dzndt|j|d d zS) NcheckFr,r6z.%(prefix)sCheckConstraint(%(sqltext)s%(opts)s)rc30K|]\}}|d|yw)rNr)rrr)s r7rz+_render_check_constraint..}s@41aA.@sr=rJ)rxrlrQ)r8 _create_ruler]r1r,sqltypesr)r6rorr8rrNrrQ)rr5rrrls r7_render_check_constraintr^s $GZIHu  J++X 6   # # * *     D T*?JOOLM N  <1/B DII@4@@ A)     ?  r9ct|jts tddj t ||jS)NznAutogenerate rendering of SQL Expression language constructs not supported here; please use a plain SQL stringz{prefix}execute({sqltext!r}))rxrQ)r1rQr rr~r3rhs r7 _execute_sqlrsL bjj# &! @   * 0 0+O<  1 r9)r5r*r6zsqla_compat._ConstraintNamer z*Optional[Union[quoted_name, str, _f_name]])rCr r r )r5r*rPr,rQzDict[str, Union[str, Config]]r r )r[zops.OpContainerr5r*r r )r5r*r_ops.MigrateOperationr  List[str])r5r*r_rr r )r5r*r_r-r r)r5r*r_zops.CreateTableCommentOpr r )r5r*r_zops.DropTableCommentOpr r )r5r*r_zops.CreateTableOpr r )r5r*r_zops.DropTableOpr r )r5r*rrr z list[str])r5r*r_zops.CreateIndexOpr r )r5r*r_zops.DropIndexOpr r )r5r*r_zops.CreateUniqueConstraintOpr r)r5r*r_zops.CreateForeignKeyOpr r )r5r*r_zops.DropConstraintOpr r )r5r*r_zops.AddColumnOpr r )r5r*r_zops.DropColumnOpr r )r5r*r_zops.AlterColumnOpr r )r6z!Optional[Union[quoted_name, str]]r  Optional[str]) rrr5r*rrYrrYrrYr r )r#r$r5r*r r)rr'r5r*r'rYr r )r5r*r r )rr r6rr5r*r zUnion[str, Literal[False]])rz Column[Any]r5r*r r )rrr rY)T)rGzBOptional[Union[FetchedValue, str, TextClause, ColumnElement[Any]]]r5r*rHrYr r)rRrr5r*r r )rVrr5r*r r )F)rr)r5r*rfrYr r )rr(r5r*r r )rr)r5r*r r r0) rr)r5r*rxr ryr rxrr z$Union[Optional[str], Literal[False]])rr r5r*rOptional[MetaData]r r)rr&r5r*rrr r)rr"rrrrr r )rr#rlzList[Tuple[str, str]]r r )rr#r5r*rrr r)rr'r5r*rrr r )rrr5r*rrr r)r5r*r_zops.ExecuteSQLOpr r ) __future__riorr>typingrrrrr r r r mako.pygenr rwrr!rrrsqlalchemy.sql.basersqlalchemy.sql.elementsrrrr=r operationsrrrrrrrsqlalchemy.sql.schemarrr r!r"r#r$r%r&r'sqlalchemy.sql.sqltypesr(sqlalchemy.sql.type_apir)alembic.autogenerate.apir*alembic.configr+alembic.operations.opsr,r-rr8rDrT Dispatcherdefault_renderersrcrKrXri dispatch_forrtCreateTableCommentOprDropTableCommentOpr CreateTableOpr DropTableOprr CreateIndexOpr DropIndexOprCreateUniqueConstraintOprCreateForeignKeyOprCreatePrimaryKeyOprCreateCheckConstraintOprDropConstraintOpr AddColumnOpr DropColumnOpr AlterColumnOprr2rrrrr-rr3r8rr;rrCrDrFrrnr`rmrrrrrrrr ExecuteSQLOprbranchrr9r7rs(#  $*(/()/##525,020:+.:6-27%659#9 %909 :#:%:1: :&!0 11I!# 6#)=5#5)=55  **+#)7,8 001#)A2B ../#)?0< ))*6+6r ( ) #5D ))*$+$N ()2 445G#G)EGG6G  ../+#+)?++0+\ ../ 0  334 5  ,,-@#@)=@@.@, ()4 (()*8 ))*<#<):<<+<~<< (!#  #      <   !/  )  ) #)  )  ) XBC    /=  6 6*866rA $     >)7"  )7  !*( *(#*(*( *(Z   (6  (!  #     * D() I I# I+ I I##I$B$BC$#+ D4%%"%+% %P7$7,A7 7"##I$B$BC$$$#$+$ $D$N##I$>$>? >  ># >+ > >@ >##I$=$=>%%#%+% %?%P (() *   $ $ & r9