
    -jix7                    Z   % 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  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%  SS K&J'r'  SS!K&J(r(  \)" 5       r*S"\+S#'   \RX                  " \S$5      S% 5       r-S& r.\.r/S'\+S('   S)r0S'\+S*'    " S+ S,5      r1 " S- S.5      r2 " S/ S05      r3 " S1 S2\35      r4 " S3 S4\35      r5g))5    )annotations)Any)Dict)Literal)overload)Set)CHAR)CheckConstraint)Column)event)
ForeignKey)Index)inspect)Integer)MetaData)Numeric)PrimaryKeyConstraint)String)Table)Text)text)UniqueConstraint   )autogenerate)util)api)_fk_spec)MigrationContextops)config)eq_)clear_staging_env)staging_envzSet[Any]names_in_this_testafter_parent_attachc                B    [         R                  U R                  5        g N)r%   addname)tableparents     a/home/james-whalen/.local/lib/python3.13/site-packages/alembic/testing/suite/_autogen_fixtures.py	new_tabler.   (   s    5::&    c                "    US:X  a	  U[         ;   $ g)Nr+   T)r%   )objr*   type_	reflected
compare_tos        r-   _default_include_objectr5   -   s    )))r/   r   _default_object_filtersN_default_name_filtersc                  H    \ rS rSr% SrSrS\S'   \S 5       r\S 5       r	Sr
g)	ModelOne9   unique_constraint_reflectionNr   schemac                ,   U R                   n[        US9n[        SU[        S[        SS9[        S[        S5      5      [        S[        5      [        S	[        S5      5      [        S
S	5      5        [        SU[        S[        SS9[        S[        S5      SS95        [        SU[        S[        SS9[        S[        SS5      S[        S5      S9[        SSS95        [        SU[        S[        5      [        S[        [        S5      5      5        U$ )Nr=   useridTprimary_keyr*   2   a1pwpw_idxaddressemail_addressd   Fnullableorderorder_idamount      0rL   server_defaultzamount >= 0ck_order_amountr*   extraxuiduser.id)r=   r   r   r   r   r   r   r   r   r   r
   r	   r   clsr=   ms      r-   _get_db_schemaModelOne._get_db_schema>   s   F#4d366":&44$(D!	
 	4d3?F3K%@		
 	:wD91#Cy	 M0AB	
 	35':i#89		
 r/   c                   U R                   n[        US9n[        SU[        S[        SS9[        S[        S5      SS	9[        S
[        SS95        [        SU[        S[        SS9[        S[        S5      SS	9[        S[        S5      5      [        SSS95        [        SU[        S[        SS9[        S[        SS5      S[        S5      S9[        S[        [        S5      5      [        SSS95        [        SU[        S[        SS9[        S[        S5      5      [        S[        [        S 5      5      [        S!5      5        U$ )"Nr?   r@   rA   TrB   r*   rD   FrK   rE   rX   )rT   rH   rI   rJ   streetuq_emailrV   rM   rN   rO   
   rQ   rR   rS   user_idrZ   zamount > -1rU   itemdescriptionzorder.order_idzlen(description) > 5)r=   r   r   r   r   r   r   r   r   r   r   r
   r[   s      r-   _get_model_schemaModelOne._get_model_schemak   s3   F#4d366":64c2	
 	4d3?F3K%@8VBZ(_:>	
 	:wD9A#Cy	 9gz)'<=M0AB	
 	4d3=&+.:w
3C(DE23	
 r/    )__name__
__module____qualname____firstlineno____requires__r=   __annotations__classmethodr^   rg   __static_attributes__ri   r/   r-   r9   r9   9   s8    4LFC* *X , ,r/   r9   c                  P    \ rS rSrSrSS0rSSSSS	S
.r\S 5       r\S 5       r	Sr
g)NamingConvModel   r;   conv_all_constraint_namesTzix_%(column_0_label)sz%uq_%(table_name)s_%(constraint_name)sz%ck_%(table_name)s_%(constraint_name)sz;fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)szpk_%(table_name)s)ixuqckfkpkc                   [        5       n[        SU[        S[        5      [	        SS5      [        SSS95        [        SU[        S[        5      [        S[        SS	S95      [        S
SS95        [        SU[        S[        5      [        S[        5      [        S[        5      [        SSS95        [        SU[        S[        5      [        SSS95        [        SU[        S[        5      [        S[        SSS95      [        S[        5      [        S[        5      [        SSS9[        SSS9[        SSS95	        [        SU[        S[        5      [        S[        5      [        S5      [        S5      5        U$ )Nx1qdb_x1_index_qdb_x1_primary_qrV   x2px1.qdb_x2_foreign_qq > 5db_x2_check_qx3rsdb_x3_unique_qx4db_x4_primary_qx5x4.qdb_x5_foreign_qdb_x5_primary_qdb_x5_unique_rs > 5db_x5_check_sunnamed_sqlite)	r   r   r   r   r   r   r   r
   r   )r\   r]   s     r-   r^   NamingConvModel._get_db_schema   sg   
 J3 /3' +<=	
 	3 3
60ABCG/:	
 	3 3 3 S'78	
 	3  +<=		
 	3 3
60ABC3 3  +<=S'78G/:
	
 	3 3  %S!	
 r/   c                   SSK Jn  [        U R                  S9n[	        SU[        S[        SS9[        S S5      5        [	        SU[        S[        5      [        S	[        S
5      5      [        SSS95        [	        SU[        S[        5      [        S[        5      [        S[        5      [        SSS9[        SU" S5      S95        [	        SU[        S[        SS9[        SS5      5        [	        SU[        S[        SS9[        S	[        S5      5      [        S[        5      [        S[        5      [        SSS9[        SS5      [        SU" S5      5      5	        U$ )Nr   )conv)naming_conventionr|   r}   TrB   r   r   r   r   token_x2check1rV   r   r   r   	token_x3ruserdef_x3_unique_sr   userdef_x4_idx_qx6r   	token_x6rr   token_x6check1zs < 20userdef_x6_check_s)sqlalchemy.sql.namingr   r   r   r   r   r   r   r   r
   r   )r\   r   r]   s      r-   rg   !NamingConvModel._get_model_schema   sD   .s'<'<=!VCd;U4=M	
 	3 3
6*+G*:;	
 	3 3 3 S{3St,A'BC	
 	3T2$c*		
 	3T23
6*+3 3 S{3G%56Hd+?&@A
	
 r/   ri   N)rj   rk   rl   rm   rn   configure_optsr   rp   r^   rg   rq   ri   r/   r-   rs   rs      sQ    4L148N%55K! 6 6p ( (r/   rs   c                  ,    \ rS rSr       SS jrSrg)_ComparesFKsi  Nc           
        [        US   5      u
  nnnnnnnnnn[        US   U5        [        X5        [        UU5        [        UU5        [        X5        [        UU
5        [        UU5        [        UU5        [        UU5        [        US   R                   Vs/ s H  nUR                  R                  PM     snU5        Ubf  US:X  aF  [        U R                  5      R                  U5      nUS   S   n[        US   R                  U5        g [        US   R                  U5        g [        US   R                  U5        g s  snf )N   r   servergeneratedr*   )r   r"   elementscolumnr*   r   bindget_foreign_keys)selfdiffr2   source_tablesource_columnstarget_tabletarget_columnsr*   conditional_namesource_schemaonupdateondelete	initially
deferrablefk_source_schemafk_source_tablefk_source_columnsfk_target_schemafk_target_tablefk_target_columnsfk_onupdatefk_ondeletefk_deferrablefk_initiallyelemfksserver_fk_names                              r-   _assert_fk_diff_ComparesFKs._assert_fk_diff  s1   < T!W	
 	DGUO*~.O\*,K"K"L)$M:&$q'*:*:;*:$T[[*:;^L'#44dii(99,G!$QDGLL.1DGLL"23Qd# <s    Eri   )NNNNNNN)rj   rk   rl   rm   r   rq   ri   r/   r-   r   r     s     3$r/   r   c                  r    \ rS rSr% S r\S 5       r0 rS\S'   \S 5       r	\S 5       r
S rS	 r SS jrSrg
)AutogenTestiB  c              #     #    U H7  n[        U[        5      (       a  U R                  U5       S h  vN   M3  Uv   M9     g  N7fr(   )
isinstancelist_flatten_diffs)r   diffsds      r-   r   AutogenTest._flatten_diffsC  s8     A!T""..q111	 1s   /AAAc                "    [         R                  $ r(   )r!   dbr\   s    r-   	_get_bindAutogenTest._get_bindJ  s    yyr/   zDict[Any, Any]r   c                    [        5         U R                  5       U l        U R                  5       U l        U R                  R                  U R                  5        U R                  5       U l        g r(   )r$   r   r   r^   m1
create_allrg   m2r   s    r-   setup_classAutogenTest.setup_classP  sJ    ==?##%#((#&&(r/   c                b    U R                   R                  U R                  5        [        5         g r(   )r   drop_allr   r#   r   s    r-   teardown_classAutogenTest.teardown_classX  s    !r/   c           
     Z   U R                   R                  5       =U l        nSSU R                  SSSS[        [
        S.	nU R                  (       a  UR                  U R                  5        [        R                  " XS9=U l
        n[        R                  " X0R                  5      U l        g )NTupgrades
downgradesop.sa.)	compare_typecompare_server_defaulttarget_metadataupgrade_tokendowngrade_tokenalembic_module_prefixsqlalchemy_module_prefixinclude_objectinclude_name
connectionopts)r   connectconnr   r6   r7   r   updater   	configurecontextr   AutogenContextautogen_context)r   r   ctx_optsr   s       r-   setUpAutogenTest.setUp]  s    99,,..	D &*#ww'+%*(-51

 OOD//0!1!;!;"
 	
w  #11'77Cr/   c                8    U R                   R                  5         g r(   )r   closer   s    r-   tearDownAutogenTest.tearDownr  s    		r/   Nc                    Ub  X0R                   R                  S'   Ub  U/U R                   l        Ub  U/U R                   l        U R                   $ )Ninclude_schemas)r   r   _object_filters_name_filters)r   object_filtersname_filtersr   s       r-   _update_contextAutogenTest._update_contextu  sX     &;J  %%&78%4B3CD  0#2>D  .###r/   )r   r   r   )NNN)rj   rk   rl   rm   r   rp   r   r   ro   r   r   r   r   r  rq   ri   r/   r-   r   r   B  sd       &(NN') )  D* GK	$r/   r   c                      \ rS rSr\    SSS.       SS jjj5       r\    SSSS.       SS jjj5       rSS\\SS4       SS	 jjrS
 rS r	Sr
g)AutogenFixtureTesti  .)max_identifier_lengthc                   g r(   ri   	r   r   r   r   r   r  r  
return_opsr	  s	            r-   _fixtureAutogenFixtureTest._fixture  s     r/   )r  r	  c                   g r(   ri   r  s	            r-   r  r    s     r/   FNc	                &   U(       a0  U R                   R                  n	U	R                  n
U=U	l        U	l         XsU l        n[
        R                  " U R                  5       H  nUR                  U R                   5        M      U R                   R                  5        nSSUSSSSUUUS.
nU(       a  UR                  U5        [        R                  " XS9=U l        n[        R                  " X5      n[        R                   " / S9n["        R$                  " UU5        U(       a7  UsS S S 5        U(       a%  U R                   R                  n	W
=U	l        U	l        $ $ UR'                  5       sS S S 5        U(       a%  U R                   R                  n	W
=U	l        U	l        $ $ ! , (       d  f       O= f U(       a%  U R                   R                  n	W
=U	l        U	l        g g ! U(       a%  U R                   R                  n	W
=U	l        U	l        f f = f)	NTr   r   r   r   )
r   r   r   r   r   r   r   r   r   r   r   r   )r   dialectr	  #_user_defined_max_identifier_length_alembic_metadatar   to_listr   r   r   r   r   r   r   r   r    
UpgradeOpsr   _produce_net_changesas_diffs)r   r   r   r   r   r  r  r  r	  r  existing_lengthmodel_metadatar]   r   r   r   r   uos                     r-   r  r    s    !ii''G%;;O &&G);%	$572D"N\\$"8"89TYY' : ""$$(.2'5%/'3-205&4$0'6 OOD))9)C)C#* w #&"4"4W"M^^+11/2F1 %$8 %))++ $$-? % ;;=5 %$8 %))++ $$-? %9 %$$8 %))++ $$-? %$))++ $$-? %s1   A%G" B
F#(	G" F#-	G" #
F1-G" ".Hc                B    [        5         [        R                  U l        g r(   )r$   r!   r   r   r   s    r-   r   AutogenFixtureTest.setUp  s    II	r/   c                    [        U S5      (       aB  [        R                  " U R                  5       H  nUR	                  U R
                  5        M      [        5         g )Nr  )hasattrr   r  r  r   r   r#   )r   r]   s     r-   r   AutogenFixtureTest.tearDown  s?    4,--\\$"8"89

499% :r/   )r  r   r   )....)r   r   r   r   r  zLiteral[True]returnzops.UpgradeOps)r   r   r   r   r  zLiteral[False]r   z	list[Any])r   r   r   r   r  boolr   zops.UpgradeOps | list[Any])rj   rk   rl   rm   r   r  r6   r7   r   r   rq   ri   r/   r-   r  r    s    
  "  " 
  
  &)!  # 
 " .* "6$6$ 6$ 6$ 
$6$pr/   r  )6
__future__r   typingr   r   r   r   r   
sqlalchemyr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   ddl.baser   	migrationr   
operationsr    testingr!   r"   testing.envr#   r$   setr%   ro   listens_forr.   r5   r6   r7   r9   rs   r   r   r  ri   r/   r-   <module>r-     s    "       &   !      +     '      )    , &"u H $ 5/0' 1'  7  6! s !_ _Dm m`4$ 4$n<$, <$~^ ^r/   