+
    iv                    v   ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH t  ^ RI!H"t" ^ RI#H$t$ ^RI%H&t& ^RI%H't' ^RI%H(t( ^RI%H)t) ^R I%H*t* ^R!I%H+t+ ^R"I%H,t, ^R#I%H-t- ^R$I%H.t. ^R%I/H0t0 ^R&I/H1t1 ^R'I2H3t3 ^R(I4H5t5 ^R)I6H7t7 ^R*I6H8t8 ^R+I9H:t: ^R,I9H;t; ^R-I3H<t< ^R.I=H>t> ]'       ds   ^ R/IH?t? ^ R0IH@t@ ^ R1IHAtA ^ R2IBHCtC ^ R3IDHEtE ^ R4IFHGtG ^ R5IHHItI ^ R6IHHJtJ ^ R7IHKtK ^ R8IHLtL ^ R9IHMtM ^ R:INHOtO ^ R;INHPtP ^ R<IQHRtR ^R=I%HStS ^R>I/HTtT ^R?IUHVtV ^R@IWHXtX ^RAIYHZtZ ]P                  ! ]\4      t] ! RB RC]14      t^ ! RD RE](4      t_]>! ].RF4      RG RH l4       t`]>! ]_RF4      RI RJ l4       ta]>! ])RF4      RK RL l4       tb]>! ]-RF4      RM RN l4       tc];P                  ! RO4      ]:P                  ! RORP4      ]7P                  P                  RQ4       ! RR RS]7P                  4      4       4       4       tg]5P                  P                  ]g4      RT RU l4       tj]5P                  P                  ]4      RV RW l4       tlRX RY ltmRZ R[ ltnR\ R] ltoR# )^    )annotationsN)Any)cast)Dict)List)Optional)Sequence)Tuple)TYPE_CHECKING)Union)Column)Float)Identity)literal_column)Numeric)select)text)types)BIGINT)ExcludeConstraint)INTEGER)CreateIndex)ColumnClause)
TextClause)FunctionElement)NULLTYPE)alter_column)alter_table)AlterColumn)ColumnComment)format_column_name)format_table_name)format_type)IdentityColumnDefault)RenameTable)ComparisonResult)DefaultImpl)util)render)ops)	schemaobj)BatchOperations)
Operations)sqla_compat)compiles)Literal)Index)UniqueConstraint)ARRAY)PGDDLCompiler)HSTORE)JSON)JSONB)ClauseElement)ColumnElement)quoted_name)MetaData)Table)
TypeEngine)_ServerDefaultType)_ReflectedConstraint)AutogenContext)_f_name)MigrationContextc                    a  ] tR t^RtRtRt]P                  RR03,           tR R ltR t	R t
R	R
RRRR
RR
RR
RR
RR
RR
RR
RR
/
R V 3R llltR tR t]P                  ! R4      ]P                  ! R4      ]P                  ! R4      ]P                  ! R4      ]P                  ! R4      3tR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR7R* V 3R+ llltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6tV ;t# )8PostgresqlImpl
postgresqlTFLOATzDOUBLE PRECISIONc               $    V ^8  d   QhRRRRRR/# )   indexr1   kwr   returnNone )formats   "pC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\alembic/ddl/postgresql.py__annotate__PostgresqlImpl.__annotate__Y   s!     
- 
-% 
-s 
-t 
-    c                	8   VP                   P                  R R4      ;'       g    RpV FR  pWAP                  P                  9  g   K  VP                  P	                  \        V\        P                  4      4       KT  	  V P                  \        V3/ VB 4       R# )postgresql_includeNrM   )
kwargsgettablecappend_columnr   sqltypesNullType_execr   )selfrI   rJ   rT   cols   &&,  rO   create_indexPostgresqlImpl.create_indexY   sv     #\\--.BDIOOR%C++--'))3 1 12 &
 	

;u++,rR   c                	    VP                    FA  pVP                  f   K  VP                  VP                  9   g   K0  V P                  V4       KC  	  R # N)constraintsnamenamed_constraintsdrop_constraint)r]   
batch_implrW   
constraints   &&& rO   prep_table_for_batch#PostgresqlImpl.prep_table_for_batche   s<    ++J+OOz'C'CC$$Z0 ,rR   c                	   VP                   '       d   W"P                  P                  J d   R # TpV'       d0   \        P                  ! RV4      '       d   VP                  RR4      pWS8H  pV'       d   R # RVVVP                  39   d   V'       * # VP                  P                  p\        V\        4      '       dP   \        VP                  \        \        34      '       g   \        P                  ! RRV4      pRV R2p\        V4      pV P                  pVf   Q hVP!                  \#        \        V4      V8H  4      4      '       * # )Fnextval\('(.+?)'::regclass\)z
::regclass Nz^'|'$')primary_keyrW   _autoincrement_columnrematchreplaceserver_defaultarg
isinstancestrtyper   r   subr   
connectionscalarr   )	r]   inspector_columnmetadata_columnrendered_metadata_defaultrendered_inspector_defaultconn_col_defaultdefaults_equalmetadata_defaultconns	   &&&&&    rO   compare_server_default%PostgresqlImpl.compare_server_defaultm   s9    '''#8#8#N#NN5+-=!
 !
  077bI)F%**
 

 &%%*99==&,,.33gu5EFF#%66(B8H#I %&'7&8#: -.>?
 ;;>"237GGH
 
 	
rR   nullableNrt   Frd   type_schemaautoincrementexisting_typeexisting_server_defaultexisting_nullableexisting_autoincrementc               P    V ^8  d   QhRRRRRRRRRR	R
RRR	RRRRRRRRRRRRRR/# )rH   
table_namerw   column_namer   zOptional[bool]rt   z3Optional[Union[_ServerDefaultType, Literal[False]]]rd   Optional[str]r   zOptional[TypeEngine]r   r   r   r   r   r   rJ   r   rK   rL   rM   )rN   s   "rO   rP   rQ      s     7
 7
7
 7

 !7

7
 7
 $7
 7
 &7
 ,7
"
7
" *#7
$ !/%7
& '7
( 
)7
rR   c       
        	   < VP                  R R4      pVe   Vf   \        P                  ! R4      hVe#   V P                  \	        VVVVVV	V
VR7      4       \
        SV `  ! VV3RVRVRVRVRVR	V	R
V
RVRV/	VB  R# )postgresql_usingNz6postgresql_using must be used with the type_ parameter)r   usingr   r   r   r   rt   rd   r   r   r   r   r   r   )popr(   CommandErrorr\   PostgresqlColumnTypesuperr   )r]   r   r   r   rt   rd   r   r   r   r   r   r   r   rJ   r   	__class__s   &&&$$$$$$$$$$, rO   r   PostgresqlImpl.alter_column   s    * )40##H  JJ$!"/,C&7	 		
 	
 *		

 	
 	
 (	
 (	
 %<	
 0	
 $:	
 	
rR   c                	   VP                  R 4      '       d   \        VR,          \        \        34      '       d   \        P
                  ! RVR ,          4      pV'       d   \        P                  ! V\        R4      VP                  ^4      R7      P                  4       pV'       d;   Vw  rgWsR,          8X  d(   \        P                  RVVP                  V4       VR  R# R# R# R# R# R# )defaultrx   rl   a9  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.oid=cast(:seqname as regclass))seqnamerd   z^Detected sequence named '%s' as owned by integer column '%s(%s)', assuming SERIAL and omittingN)rV   rv   r   r   rq   rr   r.   _exec_on_inspectorr   groupfirstloginford   )r]   	inspectorrW   column_info	seq_matchr   r   colnames   &&&&    rO   autogen_column_reflect%PostgresqlImpl.autogen_column_reflect   s    ??9%%*'6!2+
 +
 /Y1GI "55	; &OOA. %'   '+$Gf"55; $!JJ# (	2 6 # +
%rR   c                	    V Uu0 uF(  pVP                   P                  R 4      '       g   K&  VkK*  	  ppV F  pVP                  V4       K  	  \        P                  '       g   V P                  WB4       R# R# u upi )duplicates_constraintN)r   rV   remover.   sqla_2_skip_functional_indexes)r]   conn_unique_constraintsconn_indexesmetadata_unique_constraintsmetadata_indexesrI   doubled_constraintsixs   &&&&&   rO   correct_for_autogen_constraints.PostgresqlImpl.correct_for_autogen_constraints   sx     &
%zz~~56 E% 	 
 &B# & !!!))*:I "
s
   #A:A:z( asc nulls last)$z(?<! desc)( nulls last)$z( asc)$z( asc) nulls first$z desc( nulls first)$c               $    V ^8  d   QhRRRRRR/# )rH   rI   r1   exprrw   rK   rM   )rN   s   "rO   rP   rQ   &  s!          c  c  rR   c                	J   VP                  4       P                  R R4      P                  RR4      pVP                  e8   VP                  VP                  P                  P                  4        R2R4      pRV9   d   \        P
                  ! RRV4      pV'       d$   V^ ,          R8X  d   VR,          R8X  d   V^R pK+  V P                   F?  pVP                  V4      ;p'       g   K  VP                  ^4      w  rVVRV W&R ,           p M	  V'       d$   V^ ,          R8X  d   VR,          R8X  d   V^R pK+  \        P                  ! R	4      pVP                  V4      '       d+   VP                  RV4      p\        P
                  ! R
RV4      pVP                  RR4      pV# )"rm   rn   N.z::z(::[\w ]+\w)()z	cast\s*\(zas\s+[^)]+\) )lowerrs   rW   rd   rq   ry   _default_modifiers_researchspancompilerr   )r]   rI   r   rsrr   startendcast_res   &&&     rO   _cleanup_index_expr"PostgresqlImpl._cleanup_index_expr&  s_   zz|##C,44S"=;;"<<5;;#3#3#9#9#;"<A >CD4<66/2t4DtAw#~$r(c/":D ,,B		$'u''"ZZ]
FU|d4j0	 - tAw#~$r(c/":D **\*==;;r4(D66/2t4D||C$rR   c                    V ^8  d   QhRRRR/# )rH   itemzUnion[Index, UniqueConstraint]rK   zTuple[Any, ...]rM   )rN   s   "rO   rP   rQ   H  s      2	rR   c                	L    VP                   P                  R 4      '       d   R# R# )postgresql_nulls_not_distinct)nulls_not_distinctrM   )dialect_kwargsrV   )r]   r   s   &&rO   _dialect_optionsPostgresqlImpl._dialect_optionsH  s'    
 ""#BCC**	rR   c               $    V ^8  d   QhRRRRRR/# )rH   metadata_indexr1   reflected_indexrK   r&   rM   )rN   s   "rO   rP   rQ   Q  s(     :, :,:, :, 
	:,rR   c           
     	v   . pV P                  W4      pV'       d   VP                  V4       VP                  pVP                  p\        V4      \        V4      8w  d*   VP                  R \        V4       R\        V4       24       V'       d   \        P
                  ! V4      # . p\        \        WV4      ^4       F  w  pw  rV P                  V	4      pV P                  W4      pV P                  V
4      pV P                  W4      pW8X  d   KT  VP                  4       P                  R4      '       dV   RV9   g   RV9   dH   VP                  RV RV: R24       \        P                  ! RV RV: RVP                  : R	24       K  VP                  RV RV: RV: 24       K  	  V P                  V4      pV P                  V4      pVV8w  d   VP!                  R
V RV 24       V'       d   \        P
                  ! V4      # V'       d   \        P"                  ! V4      # \        P$                  ! 4       # )zexpression number  to _opsr   r   zexpression #z' detected as including operator clause.zExpression #z
 in index a   detected to include an operator clause. Expression compare cannot proceed. Please move the operator clause to the ``postgresql_ops`` dict to enable proper compare of the index expressions: https://docs.sqlalchemy.org/en/latest/dialects/postgresql.html#operator-classeszoptions )_compare_index_uniqueappendexpressionslenr&   	Different	enumeratezip_compile_elementr   stripendswithr(   warnrd   r   extendSkipEqual)r]   r   r   msg
unique_msgm_exprsr_exprsskipposm_er_e	m_compilem_text	r_compiler_text	m_options	r_optionss   &&&              rO   compare_indexesPostgresqlImpl.compare_indexesQ  s   
 //

 JJz" ,,!--w<3w<'JJ+CL>c'l^LM#--c22(W)>BOC#--c2I--nHF--c2I--nHF"++F33y C9$4"3%q 64 4 		"3%qZ&++. /ff 

\#a	}DNO5  C8 )).9	))/:		!JJ)D<=#--c22#((..#))++rR   c               $    V ^8  d   QhRRRRRR/# )rH   metadata_constraintr2   reflected_constraintrK   r&   rM   )rN   s   "rO   rP   rQ     s(     ( (-( /( 
	(rR   c                	   V P                  V4      pV P                  V4      pVP                  pVP                  pWe8w  d   \        P                  ! R V RV 24      # V P                  VP                  4      pV P                  VP                  4      pWx8w  d   \        P                  ! R V RV 24      # \        P                  ! 4       # )zexpression r   )_create_metadata_constraint_sig _create_reflected_constraint_sigunnamedr&   r   r   constr   )	r]   r   r   metadata_tupreflected_tupmeta_sigconn_sigmetadata_doconn_dos	   &&&      rO   compare_unique_constraint(PostgresqlImpl.compare_unique_constraint  s    
 ;;
 == 
  '' ((#--hZtH:6  ++L,>,>?''(;(;<!#--gYd;-8   %%''rR   c               $    V ^8  d   QhRRRRRR/# )rH   reflected_objectr?   kindrw   rK   zDict[str, Any]rM   )rN   s   "rO   rP   rQ     s$       4<?	rR   c                	    VP                  R / 4      P                  4       pVP                  R4      '       g   VP                  RR4       V# )dialect_optionsrT   N)rV   copyr   )r]   r  r  optionss   &&& rO    adjust_reflected_dialect_options/PostgresqlImpl.adjust_reflected_dialect_options  sD     #&&'8"=BBD{{/00KK,d3rR   c                    V ^8  d   QhRRRR/# )rH   elementzUnion[ClauseElement, str]rK   rw   rM   )rN   s   "rO   rP   rQ     s      (A c rR   c                	    \        V\        4      '       d   V# VP                  V P                  R RRR/R7      P                  # )literal_bindsTinclude_tableF)dialectcompile_kwargs)rv   rw   r   r  string)r]   r  s   &&rO   r   PostgresqlImpl._compile_element  sD    gs##NLL+T?EJ  
 &	rR   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rH   r   r8   is_server_defaultboolis_indexrJ   r   rK   rw   rM   )rN   s   "rO   rP   rQ     s<     
 

  
 	

 
 

rR   c                   < V'       d'   \        V\        4      '       g   VP                  4       p\        SV `  ! V3RVRV/VB # )zTRender a SQL expression that is typically a server default,
index expression, etc.

r  r  )rv   r   
self_groupr   render_ddl_sql_expr)r]   r   r  r  rJ   r   s   &&&&,rO   r  "PostgresqlImpl.render_ddl_sql_expr  sM      Jt\::??$Dw*
$5
@H
LN
 	
rR   c               $    V ^8  d   QhRRRRRR/# )rH   r   r=   autogen_contextr@   rK   zUnion[str, Literal[False]]rM   )rN   s   "rO   rP   rQ     s$      2@	#rR   c                	    \        V4      P                  pVP                  R 4      '       g   R# \        V RVP                  ,          4      '       d&   \        V RVP                  ,          4      pV! W4      # R# )zsqlalchemy.dialects.postgresqlFz_render_%s_type)rx   
__module__
startswithhasattr__visit_name__getattr)r]   r   r!  modmeths   &&&  rO   render_typePostgresqlImpl.render_type  se     5k$$~~>??4*U-A-AABB4!2U5I5I!IJD//rR   c               $    V ^8  d   QhRRRRRR/# )rH   r   r5   r!  r@   rK   rw   rM   )rN   s   "rO   rP   rQ     s$     
 

.<
	
rR   c           	     	N    \        \        \        P                  ! WR R4      4      # )	text_typez(.+?\(.*text_type=)r   rw   r)   _render_type_w_subtyper]   r   r!  s   &&&rO   _render_HSTORE_type"PostgresqlImpl._render_HSTORE_type  s*     ))5K
 	
rR   c               $    V ^8  d   QhRRRRRR/# )rH   r   r3   r!  r@   rK   rw   rM   )rN   s   "rO   rP   rQ     $     
 

-;
	
rR   c           	     	N    \        \        \        P                  ! WR R4      4      # )	item_typez(.+?\()r/  r1  s   &&&rO   _render_ARRAY_type!PostgresqlImpl._render_ARRAY_type  s)     ))Z
 	
rR   c               $    V ^8  d   QhRRRRRR/# )rH   r   r6   r!  r@   rK   rw   rM   )rN   s   "rO   rP   rQ     s$     
 

,:
	
rR   c           	     	N    \        \        \        P                  ! WR R4      4      # astext_typez(.+?\(.*astext_type=)r/  r1  s   &&&rO   _render_JSON_type PostgresqlImpl._render_JSON_type  *     ))7O
 	
rR   c               $    V ^8  d   QhRRRRRR/# )rH   r   r7   r!  r@   rK   rw   rM   )rN   s   "rO   rP   rQ     r5  rR   c           	     	N    \        \        \        P                  ! WR R4      4      # r<  r/  r1  s   &&&rO   _render_JSONB_type!PostgresqlImpl._render_JSONB_type  r@  rR   rM   )FF)__name__r#  __qualname____firstlineno____dialect__transactional_ddlr'   type_synonymsr_   ri   r   r   r   r   rq   r   r   r   r   r   r  r  r   r  r*  r2  r8  r>  rC  __static_attributes____classcell__r   s   @rO   rD   rD   R   sI   K--	$%1 M
-11
f7

 $(7
 7
 #7
 '+7
 !%7
 )-7
 /37
  !7
" -1#7
$ 26%7
 7
r%3NJ> 	

'(


-.


9


()


)* D:,x(8
 
.



 
rR   rD   c                  .   a  ] tR tRtR V 3R lltRtV ;t# )r   i  c               (    V ^8  d   QhRRRRRRRR/# )rH   rd   rw   r   r   r=   rK   rL   rM   )rN   s   "rO   rP   !PostgresqlColumnType.__annotate__  s,      &)2<	rR   c                	   < VP                  R R4      p\        SV `  ! W3/ VB  \        P                  ! V4      V n        WPn        R# )r   N)r   r   __init__rZ   to_instancer   r   )r]   rd   r   r   rJ   r   r   s   &&&&, rO   rR  PostgresqlColumnType.__init__  s>     w%1b1))%0

rR   )r   r   )rE  r#  rF  rG  rR  rK  rL  rM  s   @rO   r   r     s     rR   r   rE   c               $    V ^8  d   QhRRRRRR/# )rH   r  r%   compilerr4   rK   rw   rM   )rN   s   "rO   rP   rP     s$      $1rR   c                x    \        WP                  V P                  4      : R \        WP                  R4      : 2# )z RENAME TO N)r   r   r   r"   new_table_namer  rV  rJ   s   &&,rO   visit_rename_tablerZ    s2    
 	H00'..A($:$:DA rR   c               $    V ^8  d   QhRRRRRR/# )rH   r  r   rV  r4   rK   rw   rM   )rN   s   "rO   rP   rP     s$      !-:rR   c           	     
   \        WP                  V P                  4      : R \        WP                  4      : R R\        WP                  4      ,          : R V P                  '       d   RV P                  ,          : 2# R: 2# )r   zTYPE %szUSING %srm   )r   r   r   r   r   r#   r   r   rY  s   &&,rO   visit_column_typer]    sm    
 	H00'..AX223K--888&-mmm
W]]";	  :<;	 rR   c               $    V ^8  d   QhRRRRRR/# )rH   r  r    rV  r4   rK   rw   rM   )rN   s   "rO   rP   rP   (  s$      &3rR   c                "   R pV P                   e:   VP                  P                  V P                   \        P                  ! 4       4      MRpVP                  \        WP                  V P                  4      \        WP                  4      VR7      # )z9COMMENT ON COLUMN {table_name}.{column_name} IS {comment}NULL)r   r   comment)ra  sql_compilerrender_literal_valuerZ   StringrN   r"   r   r   r!   r   )r  rV  rJ   ddlra  s   &&,  rO   visit_column_commentrf  '  s     FC
 ??& 	22OOX__.	
   ::$(('..
 'x1D1DE   rR   c                    V ^8  d   QhRRRR/# )rH   r  r$   rV  r4   rM   )rN   s   "rO   rP   rP   >  s      ".;rR   c                   \        WP                  V P                  4      : R \        WP                  4      : R 2pV P
                  f   VR,          pV# V P                  f-   VR,          pW1P                  V P
                  4      ,          pV# V P                  P                  V P
                  V P                  4      w  p pV P
                  p\        V4       Fc  pVR8X  d'   TRVP                  '       d   RMR,          ,          pK0  VRVP                  \        R/ V\        Wg4      /B 4      ,          ,          pKe  	  V# )	r   zDROP IDENTITYzADD alwayszSET GENERATED %s ALWAYSz
BY DEFAULTzSET %s rM   )r   r   r   r   r   r   r   visit_identity_columnimpl_compare_identity_defaultsortedri  get_identity_optionsr   r'  )r  rV  rJ   r   diff_identityattrs   &&,     rO   rk  rk  =  s    
 	H00'..AX223D 		(	(	0..w?? \\;;OOW<<

a ??4LDx+ (H\  	H$A$A?gh&=>?%   ! rR   create_exclude_constraintbatch_create_exclude_constraintexclude_constraintc                      ] tR tRtRtRtRR R llt]R R l4       tRR	 R
 llt	]R R l4       t
]R R l4       tRtR# )CreateExcludeConstraintOpi`  z0Represent a create exclude constraint operation.excludeNc               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )rH   constraint_namezsqla_compat._ConstraintNamer   zUnion[str, quoted_name]elementszIUnion[Sequence[Tuple[str, str]], Sequence[Tuple[ColumnClause[Any], str]]]wherez)Optional[Union[ColumnElement[bool], str]]r   r   _orig_constraintzOptional[ExcludeConstraint]rK   rL   rM   )rN   s   "rO   rP   &CreateExcludeConstraintOp.__annotate__j  sP      4 ,
	 9  6 
rR   c                	Z    Wn         W n        W0n        W@n        WPn        W`n        Wpn        R # rb   )r{  r   r|  r}  r   r~  rJ   )r]   r{  r   r|  r}  r   r~  rJ   s   &&&&&&&,rO   rR  "CreateExcludeConstraintOp.__init__j  s)      /$ 
 0rR   c                    V ^8  d   QhRRRR/# )rH   rh   r   rK   rx  rM   )rN   s   "rO   rP   r    s     
 
*
	"
rR   c                	B   \         P                  ! V4      pT ! VP                  VP                  VP                   UUUu. uF	  w  r4qSV3NK  	  uppp\	        R VP
                  4      VP                  VVP                  VP                  VP                  R7	      # u upppi )zColumnElement[bool] | None)r}  r   r~  
deferrable	initiallyr   )
r.   _table_for_constraintrd   _render_exprsr   r}  r   r  r  r   )clsrh   constraint_tabler   rd   ops   &&    rO   from_constraint)CreateExcludeConstraintOp.from_constraint  s     '<<ZHOO!!1;1I1I1I~t2r
1I 3Z5E5EF#**'!,, **""
 	
s   Bc                    V ^8  d   QhRRRR/# )rH   migration_contextzOptional[MigrationContext]rK   r   rM   )rN   s   "rO   rP   r    s      !;	rR   c                	   V P                   e   V P                   # \        P                  ! V4      pVP                  V P                  V P
                  R7      p\        V P                  RV P                  RV P                  /V P                  B pVP                   F&  w  pppVP                  \        V\        4      4       K(  	  VP                  V4       V# )N)r   rd   r}  )r~  r+   SchemaObjectsrW   r   r   r   r|  r{  r}  rJ   r  rY   r   r   append_constraint)r]   r  
schema_objtexclr   rd   opers   &&      rO   to_constraint'CreateExcludeConstraintOp.to_constraint  s       ,(((,,->?
T__T[[A ]]
%%
 **
 gg	
 	
OOF423  	D!rR   c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )rH   
operationsr-   r{  rw   r   r|  r   rJ   rK   Optional[Table]rM   )rN   s   "rO   rP   r    sF     +% +%+% +% 	+%
 +% +% 
+%rR   c                8    V ! W#V3/ VB pVP                  V4      # )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 <value>
 when issuing DDL for this constraint.
:param schema: Optional schema name to operate within.

)invoke)r  r  r{  r   r|  rJ   r  s   &&&&*, rO   rt  3CreateExcludeConstraintOp.create_exclude_constraint  s'    V h="=  $$rR   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rH   r  r,   r{  rw   r|  r   rJ   rK   r  rM   )rN   s   "rO   rP   r    s<     % %#% % 	%
 % 
%rR   c                    VP                   P                  VR&   V ! W!P                   P                  V3/ VB pVP                  V4      # )a  Issue 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   )rl  r   r   r  )r  r  r{  r|  rJ   r  s   &&&*, rO   ru  9CreateExcludeConstraintOp.batch_create_exclude_constraint  sC    & "--8//"<"<hM"M  $$rR   )r~  r{  r|  rJ   r   r   r}  )NNNrb   )rE  r#  rF  rG  __doc__constraint_typerR  classmethodr  r  rt  ru  rK  rM   rR   rO   rx  rx  `  sS     ;O* 
 
$, +% +%Z % %rR   rx  c               $    V ^8  d   QhRRRRRR/# )rH   r!  r@   r  rx  rK   rw   rM   )rN   s   "rO   rP   rP     s)     P P#P)BPPrR   c                :    \        VP                  4       V R R7      # )T)alter)_exclude_constraintr  )r!  r  s   &&rO   _add_exclude_constraintr    s     r//1?$OOrR   c               (    V ^8  d   QhRRRRRRRR/# )	rH   rh   r   r!  r@   namespace_metadatar;   rK   rw   rM   )rN   s   "rO   rP   rP     s6     C C!C#C !C 		CrR   c                X    \         P                  ! R W4      pVRJd   V# \        WR4      # )ry  F)r)   _user_defined_renderr  )rh   r!  r  rendereds   &&& rO   !_render_inline_exclude_constraintr    s5     **:H uzEBBrR   c                    V ^8  d   QhRRRR/# )rH   r!  r@   rK   rw   rM   )rN   s   "rO   rP   rP     s      ^  rR   c                H    V P                   pVe   VP                  R4       R# )Nz*from sqlalchemy.dialects import postgresqlzpostgresql.)importsadd)r!  r  s   & rO   _postgresql_autogenerate_prefixr    s#    %%G@ArR   c               (    V ^8  d   QhRRRRRRRR/# )	rH   rh   r   r!  r@   r  r  rK   rw   rM   )rN   s   "rO   rP   rP     s0     <
 <
!<
#<
 <
 		<
rR   c                  a aa . oSP                   pS P                  '       d'   SP                  R \        S P                  4      34       S P                  '       d'   SP                  R\        S P                  4      34       S P
                  '       d'   SP                  R\        S P
                  4      34       V'       g`   V'       dX   S P                  P                  '       d<   SP                  R\        P                  ! S P                  P                  4      34       V'       gE   S P                  '       d3   SP                  R\        P                  ! SS P                  4      34       VV V3R lpV'       d   \        \        P                  ! SS P                  4      4      .pV'       g<   V\        \        P                  ! S P                  P                  4      4      .,          pVP                  V! 4       4       RR\        P                  ! S4      RR	P                  V4      /,          # V! 4       pR
R\!        S4      RR	P                  V4      /,          # )r  r  r   r   rd   c            
     n  < SP                    U UUu. uF  w  rpR \        V S4      : RV: R2NK  	  ppp pSP                  e8   VP                  R\        P
                  ! SP                  S4      ,          4       TP                  S UUu. uF  w  rEV: RV: 2NK  	  upp4       V# u uppp i u uppi )r   , r   zwhere=%s=)r  _render_potential_columnr}  r   r)   _render_potential_exprr   )	sqltextrd   opstringargskvr!  rh   optss	         rO   do_expr_where_opts/_exclude_constraint.<locals>.do_expr_where_opts!  s     ,6+C+C

 ,D'x )#  ,D 	 

 'KK//$$o 	$7$$!1%$78'

$ 8s   !B*B1
z-%(prefix)screate_exclude_constraint(%(args)s)prefixr  r  z%%(prefix)sExcludeConstraint(%(args)s))
_has_batchr  r   rw   r  r   rW   r   r)   _identrd   _render_gen_namereprr   _alembic_autogenerate_prefixjoinr  )rh   r!  r  	has_batchr  r  r  s   ff&   @rO   r  r    s   
 FHD**I\3z'<'<#=>?[#j&:&:";<=Wc*"2"2345:#3#3#:#:#:Xv}}Z-=-=-D-DEFGZ___V,,_jooNO	
, ((*//JK
 T&--
(8(8(=(=>?@@D&()>f99/JDIIdOB
 
 	

 "#65oFDIIdO:
 
 	
rR   c               $    V ^8  d   QhRRRRRR/# )rH   valuezGUnion[ColumnClause[Any], Column[Any], TextClause, FunctionElement[Any]]r!  r@   rK   rw   rM   )rN   s   "rO   rP   rP   J  s*     
 

 $	

 	
rR   c           	        \        V \        4      '       dC   V P                  '       d   R pMRpVR\        P                  ! V4      RV P
                  /,          # \        P                  ! V V\        V \        \        34      R7      # )z"%(prefix)sliteral_column(%(name)r)z%(prefix)scolumn(%(name)r)r  rd   )wrap_in_element)	rv   r   
is_literalr)   _sqlalchemy_autogenerate_prefixrd   r  r   r   )r  r!  templates   && rO   r  r  J  s|     %&&;H3Hf<<_MEJJ
 
 	

 ,,&uz?.KL
 	
rR   )p
__future__r   loggingrq   typingr   r   r   r   r   r	   r
   r   r   
sqlalchemyr   r   r   r   r   r   r   r   rZ   sqlalchemy.dialects.postgresqlr   r   r   sqlalchemy.schemar   sqlalchemy.sql.elementsr   r   sqlalchemy.sql.functionsr   sqlalchemy.typesr   baser   r   r   r    r!   r"   r#   r$   r%   rl  r&   r'   rm   r(   autogenerater)   r  r*   r+   operations.baser,   r-   r.   util.sqla_compatr/   r0   r1   r2   $sqlalchemy.dialects.postgresql.arrayr3   #sqlalchemy.dialects.postgresql.baser4   %sqlalchemy.dialects.postgresql.hstorer5   #sqlalchemy.dialects.postgresql.jsonr6   r7   r8   r9   r:   sqlalchemy.sql.schemar;   r<   sqlalchemy.sql.type_apir=   r>   r?   autogenerate.apir@   autogenerate.renderrA   runtime.migrationrB   	getLoggerrE  r   rD   r   rZ  r]  rf  rk  register_operationAddConstraintOpregister_add_constraintrx  	renderersdispatch_forr  _constraint_renderersr  r  r  r  rM   rR   rO   <module>r     s3   #  	              %    ( 1 < 2 ) 0 . 4 %     $ #  '  "   !  " - (  '  +:A<89553.+2(*1-4!r
[ r
j;  
+|$ % 

- . 
-& '* 

. /D :;##!B ,,-ABF% 3 3 F% C <
F%R 89P :P **+<=C >C<
~
rR   