
    gq              	         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddl"m#Z# ddl$m%Z% d d!lm&Z' d d"lm(Z( d d#lm)Z) d d$lm$Z$ d d%l*m+Z+ d d&l*m,Z, d d'l-m.Z. d d(l/m0Z0 d d)l/m1Z1 d d*l2m3Z3 d d+l4m5Z5 d d,l4m6Z6 d d-l4m7Z7 d d.l4m8Z8 d d/l4m9Z9 d d0l4m:Z: d d1l4m;Z; er`dd2l<m=Z= dd3l<m>Z> dd4l<m?Z? dd5l<m@Z@ dd6lmAZA dd7lBmCZC dd8lDmEZE dd9lFmGZG dd:lHmIZI dd;lHmJZJ d d<lKmLZL d d=lMmNZN d d>lMmOZO d d?lPmQZQ d d@l4mRZR d dAl4mSZS  edBeC      ZT edDeC      ZU edEdFC      ZVg dGZWe)j                   G dH dIeeT   e!eT   ee)j                               ZZ G dJ dKeZeT   eeT         Z[ G dL dMeeeT   eeT         Z\yN)Oz|MapperProperty implementations.

This is a private module which defines the behavior of individual ORM-
mapped attributes.

    )annotations)Any)cast)Dict)List)Optional)Sequence)Set)Tuple)Type)TYPE_CHECKING)TypeVar)Union   )
attributes)strategy_options)_DeclarativeMapped)class_mapper)CompositeProperty)ConcreteInheritedProperty)SynonymProperty)_AttributeOptions)_DEFAULT_ATTRIBUTE_OPTIONS)_IntrospectsAnnotations)_MapsColumns)MapperProperty)PropComparator)StrategizedProperty)RelationshipProperty)de_stringify_annotation   )exc)
ForeignKey)log)util)	coercions)roles)_NoArg)Column)SchemaConst)
TypeEngine)de_optionalize_union_types)get_args)includes_none)
is_fwd_ref)	is_pep593)	is_pep695)Self)_IdentityKeyType)_InstanceDict)_ORMColumnExprArgument)_RegistryType)Mapped)_ClassScanMapperConfig)Mapper)Session)_InstallLoaderCallableProto)InstanceState)	_InfoType)ColumnElement)NamedColumn)OperatorType)_AnnotationScanType)RODescriptorReference_T)bound_PT_NCzNamedColumn[Any])ColumnPropertyr   r   r   r   c                  (    e Zd ZU dZej
                  ZdZ	 dZde	d<   de	d<   de	d	<   d
e	d<   dZ
dddddddddddd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d! fdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d"dZed#d       Zed$d       Zd%dZ ej$                  dd      	 	 d&d       Z ej$                  dd      	 	 d&d       Zd'dZed'd       Zd(dZd) fdZd*dZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d+dZ G d dej6                  ee         Zd,d Z xZ S )-rG   zDescribes an object attribute that corresponds to a table column
    or other column expression.

    Public constructor is the :func:`_orm.column_property` function.

    TFzList[NamedColumn[Any]]columnsbool_is_polymorphic_discriminatorOptional[str]_mapped_by_synonymzType[PropComparator[_T]]comparator_factory)rI   groupdeferred
instrumentrN   active_historyexpire_on_flush_creation_orderrK   rM   _deferred_column_loader_raise_column_loader_renders_in_subqueries	raiseloadN)attribute_optionsrO   rP   rX   rN   rR   rS   infodoc_instrument_assume_readonly_dc_attributesc                  t         |   ||       |f|z   }|D cg c]&  }t        j                  t        j
                  |      ( c}| _        || _        || _        || _	        || _
        ||n| j                  j                  | _        || _        || _        |	| j                   j#                  |	       |
|
| _        n9t'        | j                        D ]  }t)        |dd       }
|
|
| _         n d | _        t+        j,                  |        d| j                  fd| j                  ff| _        | j                  r| xj.                  dz  c_        y y c c}w )N)rY   r]   r[   rP   rQ   ))rX   T)super__init__r&   expectr'   LabeledColumnExprRolerI   rO   rP   rX   rQ   	__class__
ComparatorrN   rR   rS   rZ   updater[   reversedgetattrr%   set_creation_orderstrategy_key)selfcolumnrY   rO   rP   rX   rN   rR   rS   rZ   r[   r\   r]   additional_columnsrI   ccolrc   s                    X/var/www/html/AdoubleTech/venv/lib/python3.12/site-packages/sqlalchemy/orm/properties.pyr`   zColumnProperty.__init__   sb     	/+I 	 	
 )00FM
ABIU88!<
 
 "% "- ** 	
 -.IIT"?DH-  c5$/?"DH	   % '4??+
 >>!77 G
s   +Ec
                p    | j                   d   }
|
j                  ||
_        |
j                  ||
_        y y Nr   )rI   keyname)rj   	decl_scanregistryclsoriginating_modulerr   mapped_container
annotationextracted_mapped_annotationis_dataclass_fieldrk   s              ro   declarative_scanzColumnProperty.declarative_scan   s8     a::FJ;;FK     c                    | S N rj   s    ro   mapper_property_to_assignz(ColumnProperty.mapper_property_to_assign   s    r}   c                |    | j                   D cg c]"  }t        |t              r|j                  |df$ c}S c c}w rq   )rI   
isinstancer)   table)rj   rm   s     ro   columns_to_assignz ColumnProperty.columns_to_assign   s>    
 \\
!V$ F
 	
 
s   '9c                    d| j                   v r| j                  j                  S d| j                   vxs | | j                  j                  vS )N)query_expressionT)rP   T)ri   strategy_have_default_expressionparent_readonly_propsr   s    ro   %_memoized_attr__renders_in_subqueriesz4ColumnProperty._memoized_attr__renders_in_subqueries   sJ    %):)::==999!):):: 
333	
r}   zsqlalchemy.orm.statezsqlalchemy.orm.strategiesc                   t         j                  j                  }t         j                  j                  }|j                  j                  | j                  j                  |j                  | j                        | j                        S r   
r%   	preloaded	orm_stateorm_strategiesr<   "_instance_level_callable_processorr   class_managerLoadDeferredColumnsrr   rj   state
strategiess      ro   &_memoized_attr__deferred_column_loaderz5ColumnProperty._memoized_attr__deferred_column_loader   sa     ((^^22
""EEKK%%**4884HH
 	
r}   c                   t         j                  j                  }t         j                  j                  }|j                  j                  | j                  j                  |j                  | j                  d      | j                        S )NTr   r   s      ro   #_memoized_attr__raise_column_loaderz2ColumnProperty._memoized_attr__raise_column_loader   sc     ((^^22
""EEKK%%**488T:HH
 	
r}   c                    | j                   S )zsAllow the ColumnProperty to work in expression before it is turned
        into an instrumented attribute.
        )
expressionr   s    ro   __clause_element__z!ColumnProperty.__clause_element__  s    
 r}   c                     | j                   d   S )a  Return the primary column or expression for this ColumnProperty.

        E.g.::


            class File(Base):
                # ...

                name = Column(String(64))
                extension = Column(String(8))
                filename = column_property(name + "." + extension)
                path = column_property("C:/" + filename.expression)

        .. seealso::

            :ref:`mapper_column_property_sql_expressions_composed`

        r   )rI   r   s    ro   r   zColumnProperty.expression  s    ( ||Ar}   c                    | j                   sy t        j                  |j                  | j                  | j                  | |      || j                         y )N)
comparatorparententityr[   )rQ   r   register_descriptorclass_rr   rN   r[   )rj   mappers     ro   instrument_classzColumnProperty.instrument_class#  sB    &&MMHH..tV<	
r}   c                f   t         |           t        | j                        dkD  rt	        | j
                  j                        j                  | j                        rQt        j                  d| j
                  d| j                  d   d| j                  d   d| j                  d	       y y y )Nr   z
On mapper z, primary key column 'z6' is being combined with distinct primary key column 'r   z' in attribute 'zM'. Use explicit properties to give each column its own mapped attribute name.)r_   do_initlenrI   setr   primary_key
issupersetr%   warnrr   )rj   rc   s    ro   r   zColumnProperty.do_init/  s    t||q S)@)@%A%L%LLL&
 II ;;Qa$((L&
 r}   c                l    t        | j                  | j                  | j                  | j                  dS )N)rP   rO   rR   )rG   rI   rP   rO   rR   r   s    ro   copyzColumnProperty.copy?  s-    \\]]**..	
 	
r}   c	                R   | j                   sy | j                  |v rQ|| j                     }	|s|	|| j                  <   y |j                  | j                        }
|
j                  |||	d        y |j                  r/| j                  |vr |j                  || j                  gd       y y y )NT)	no_loader)rQ   rr   get_implr   has_identity_expire_attributes)rj   sessionsource_statesource_dict
dest_state	dest_dictload
_recursive_resolve_conflict_mapvalueimpls              ro   mergezColumnProperty.mergeG  s     XX$)E&+	$((#!**4884Yt<$$)B))DHH: *  *C$r}   c                      e Zd ZU dZesdZded<   ded<   	 ddZerddZ	 	 dd	Z	dd
Z
ddZddZ	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 ddZy)ColumnProperty.Comparatora  Produce boolean, comparison, and other operators for
        :class:`.ColumnProperty` attributes.

        See the documentation for :class:`.PropComparator` for a brief
        overview.

        .. seealso::

            :class:`.PropComparator`

            :class:`.ColumnOperators`

            :ref:`types_operators`

            :attr:`.TypeEngine.comparator_factory`

        )r   rZ   expressionsz*RODescriptorReference[ColumnProperty[_PT]]propSequence[NamedColumn[Any]]r   c                   | j                   }|||| j                  j                  d}|}| j                  j                  r,|}| j                  j                  j                  |      }||d<   |j                  |      j                  d|d      S )a  annotate and possibly adapt a column to be returned
            as the mapped-attribute exposed version of the column.

            The column in this context needs to act as much like the
            column in an ORM mapped context as possible, so includes
            annotations to give hints to various ORM functions as to
            the source entity of this column.   It also adapts it
            to the mapper's with_polymorphic selectable if one is
            present.

            )entity_namespacer   parentmapper	proxy_keyadapt_columnorm)compile_state_pluginplugin_subject)_parententityr   rr   _parentmapper_polymorphic_adaptertraverse	_annotate_set_propagate_attrs)rj   rk   per   rn   mapper_local_cols         ro   _orm_annotate_columnz.ColumnProperty.Comparator._orm_annotate_column  s     ##B$& " "!YY]]	+K C !!66#& ((==FFsK
 /?N+==-BB)."E r}   c                     y r   r   r   s    ro   r   z,ColumnProperty.Comparator.__clause_element__  s    r}   c                    | j                   r=| j                  | j                  j                  d   | j                  j                        S | j	                  | j                  j                  d         S rq   adapterr   rI   rr   r   r   s    ro   #_memoized_method___clause_element__z=ColumnProperty.Comparator._memoized_method___clause_element__  sS     ||||DII$5$5a$8$))--HH001B1B11EFFr}   c                    | j                         }	 |j                  S # t        $ r | j                  j                  cY S w xY w)z(The .info dictionary for this attribute.)r   rZ   AttributeErrorr   )rj   ces     ro   _memoized_attr_infoz-ColumnProperty.Comparator._memoized_attr_info  s=     ((*B&ww! &yy~~%&s    A A c                $   | j                   rH| j                  j                  D cg c](  }| j                  || j                  j                        * c}S | j                  j                  D cg c]  }| j	                  |       c}S c c}w c c}w )zThe full sequence of columns referenced by this
            attribute, adjusted for any aliasing in progress.

            .. versionadded:: 1.3.17

            r   )rj   rn   s     ro   _memoized_attr_expressionsz4ColumnProperty.Comparator._memoized_attr_expressions  s     ||  $yy00 LLdiimm4  ?Cii>O>O7:D--c2 
s   -B-Bc                6    t        | j                         |      S )zproxy attribute access down to the mapped column.

            this allows user-defined comparison methods to be accessed.
            )rg   r   )rj   rr   s     ro   _fallback_getattrz+ColumnProperty.Comparator._fallback_getattr  s    
 4224c::r}   c                6     || j                         g|i |S r   r   rj   opotherkwargss       ro   operatez!ColumnProperty.Comparator.operate  s"     d--/B%B6BBr}   c                V    | j                         } ||j                  ||      |fi |S r   r   _bind_paramrj   r   r   r   rn   s        ro   reverse_operatez)ColumnProperty.Comparator.reverse_operate  s/     ))+Ccoob%0#@@@r}   N)rk   rF   returnrF   )r   zNamedColumn[_PT])r   r=   )r   r   )rr   strr   r   r   r@   r   r   r   r   r   zColumnElement[Any])__name__
__module____qualname____doc__r   	__slots____annotations__r   r   r   r   r   r   r   r   r   r}   ro   rd   r   a  s    	$ CI88//	&	P A	G	G	&	"	;	C"	C,/	C;>	C	C
	A"	A+.	A:=	A	Ar}   rd   c                    | j                   r| j                  st        j                  |       S t	        | j                   j
                  j                        dz   | j                  z   S )N.)r   rr   object__repr__r   r   r   r   s    ro   __str__zColumnProperty.__str__  sG    {{$((??4((4;;%%../#5@@r}   )rk   z_ORMColumnExprArgument[_T]rl   z_ORMColumnExprArgument[Any]rY   zOptional[_AttributeOptions]rO   rL   rP   rJ   rX   rJ   rN   z"Optional[Type[PropComparator[_T]]]rR   rJ   rS   rJ   rZ   zOptional[_InfoType]r[   rL   r\   rJ   r]   rJ   rt   r8   ru   r6   rv   	Type[Any]rw   rL   rr   r   rx   zOptional[Type[Mapped[Any]]]ry   Optional[_AnnotationScanType]rz   r   r{   rJ   r   Noner   zOptional[MapperProperty[_T]]r   zList[Tuple[Column[Any], int]])r   rJ   )r   z _InstallLoaderCallableProto[Any])r   zroles.ColumnsClauseRole)r   zMapper[Any]r   r   )r   r   )r   zColumnProperty[_T])r   r:   r   InstanceState[Any]r   r4   r   r  r   r4   r   rJ   r   zDict[Any, object]r   z#Dict[_IdentityKeyType[Any], object]r   r   r   r   )!r   r   r   r   r   _COLUMN_TOKENstrategy_wildcard_keyinherit_cache_links_to_entityr   r   r`   r|   propertyr   r   r   r%   preload_moduler   r   r   r   r   r   r   r   MemoizedSlotsr   rE   rd   r   __classcell__)rc   s   @ro   rG   rG   _   s    -::M###''%%00I* :>#AE$ $$(! /498*98 998 7	98
 98 98 98 ?98 98 98 "98 98 98 )-98v)   	
 *  6 2 &C ! 
$   
 

 T/1LM	
	)	
 N	
 T/1LM	
	)	
 N	
  *

 
 ) #	
 ' !  &  C 
4BAT'')< BAHAr}   rG   c                      e Zd ZdZdZy)MappedSQLExpressionaN  Declarative front-end for the :class:`.ColumnProperty` class.

    Public constructor is the :func:`_orm.column_property` function.

    .. versionchanged:: 2.0 Added :class:`_orm.MappedSQLExpression` as
       a Declarative compatible subclass for :class:`_orm.ColumnProperty`.

    .. seealso::

        :class:`.MappedColumn`

    TN)r   r   r   r   r  r   r}   ro   r  r    s     Mr}   r  c                  r   e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   ddZddZedd       Z	ed d       Z
ed!d       Zd"dZ	 	 	 	 	 	 	 	 d#dZ	 	 	 	 	 	 	 	 d#dZd$dZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d%dZ ej$                  d      	 	 	 	 	 	 	 	 	 	 	 	 	 	 d&d       Z	 	 	 	 	 	 	 	 	 	 d'dZy)(MappedColumna_  Maps a single :class:`_schema.Column` on a class.

    :class:`_orm.MappedColumn` is a specialization of the
    :class:`_orm.ColumnProperty` class and is oriented towards declarative
    configuration.

    To construct :class:`_orm.MappedColumn` objects, use the
    :func:`_orm.mapped_column` constructor function.

    .. versionadded:: 2.0


    )rk   rT   _sort_orderforeign_keys_has_nullable_has_insert_defaultrP   deferred_groupdeferred_raiseloadrR   _attribute_options_has_dataclass_arguments_use_existing_columnzUnion[_NoArg, bool]rP   rJ   r  rL   r  
Column[_T]rk   zOptional[Set[ForeignKey]]r  r   r  c                   |j                  dt              x| _        |j                  dd      | _        d uxr2 t        k7  xr' t	        fdt        j                        D              | _        |j                  dt        j                        }|t        j                  u| _
        | j                  r||d<   n+j                  t        j                  urj                  |d<   |j                  dd       | _        |j                  dd       | _        |j                  d	t        j                        | _        |j                  d
d      | _        |j                  dt        j                        | _        t#        dt%        |i |      | _        | j&                  j(                  | _        d|v xr# |j+                  d      d t,        j.                  fv| _        t3        j4                  |        y )NrY   use_existing_columnFc              3  X   K   | ]!  \  }}|d k7  r|   t         j                  u # yw)dataclasses_defaultN)r(   NO_ARG).0iattr	attr_optss      ro   	<genexpr>z(MappedColumn.__init__.<locals>.<genexpr>2  s3      At00 !FMM1s   '*insert_defaultdefaultr  r  rP   rR   
sort_orderr  nullable)popr   r  r  any	enumerate_fieldsr  r(   r  r  r  r  r  rP   rR   r  r   r)   rk   r  getr*   NULL_UNSPECIFIEDr  r%   rh   )rj   argkwr%  r#  s       @ro   r`   zMappedColumn.__init__(  s   .0ff!;/
 	
) %'FF+@%$H! T! 77 ():):;  	%  0&--@#1#F ##*ByM**&--?%99ByM ff%5t<"$&&)=t"Dz6==9 ff%5u=66,><););< KK44'2- 
"&&2D((M
 3
 	%r}   c                F   | j                   j                  | j                         } | j                  j                  di ||_        | j                  |_        | j
                  |_        | j                  |_        |j                  j                  |_        | j                  |_        | j                  |_	        | j                  |_
        | j                  |_        | j                  |_        | j                  |_        | j                  |_        t        j                   |       |S )Nr   )rc   __new__rk   _copyrP   r  r  r  rR   r  r  r  r  r  r  r%   rh   )rj   r0  news      ro   r3  zMappedColumn._copyO  s    nn$$T^^4&T[[&&,,
}}!00!%!8!8::22!00 ..!%!8!8"&":":'+'D'D$#'#<#< **$
r}   c                .    | j                   j                  S r   )rk   rs   r   s    ro   rs   zMappedColumn.name`  s    {{r}   c                (   | j                   }|t        j                  u r#t        | j                  xs | j
                        }|s| j                  rCt        | j                  || j                  | j
                  | j                  | j                        S y )N)rP   rO   rX   rY   rR   )
rP   r(   r  rJ   r  r  rR   rG   rk   r  )rj   effective_deferreds     ro   r   z&MappedColumn.mapper_property_to_assignd  s    !]].!%##>t'>'>" !4!4!+))11"&"9"9#22  r}   c                t    | j                   | j                  t        j                  ur| j                  fgS dfgS rq   )rk   r  r(   r  r   s    ro   r   zMappedColumn.columns_to_assignx  sM      ''v}}< $$	
 		
 	
 		
r}   c                    | j                   S r   )rk   r   s    ro   r   zMappedColumn.__clause_element__  s    {{r}   c                6     || j                         g|i |S r   r   r   s       ro   r   zMappedColumn.operate  s"     $))+>e>v>>r}   c                V    | j                         } ||j                  ||      |fi |S r   r   r   s        ro   r   zMappedColumn.reverse_operate  s/     %%'#//"e,c<V<<r}   c                    t               S r   )r  r   s    ro   found_in_pep593_annotatedz&MappedColumn.found_in_pep593_annotated  s     ~r}   c
                \   | j                   }
| j                  r|j                  r|j                  r~|j                  rt        j                  d      t        |j                  d      }|
j                  |
j                  n|}|j                  j                  j                  ||
      x}
| _         |
j                  ||
_        |
j                  ||
_        |
j                  }|6|j                  r)| j                   j                  s| j!                  ||       ny | j#                  ||||       y )Nz3Can't use use_existing_column with deferred mappersF)rk   r  inheritssingleis_deferredsa_excArgumentErrorr   rs   local_tablerm   r-  rr   type_isnullr  _raise_for_required_init_column_for_annotation)rj   rt   ru   rv   rw   rr   rx   ry   rz   r{   rk   supercls_mappercolnamesqltypes                 ro   r|   zMappedColumn.declarative_scan  s     %%""  $$**I  +9+=+=uEO%+[[%<fkk#G#2#>#>#@#@#D#D$ FT[ ::FJ;;FK++&.t{{'?'?((c2(('		
r}   zsqlalchemy.orm.decl_basec                    t         j                  j                  }|j                  || j                         | j                  ||||       y r   )r%   r   orm_decl_base_undefer_column_namerk   rH  )rj   ru   rv   rw   rr   
param_nameparam_annotation	decl_bases           ro   declarative_scan_for_compositez+MappedColumn.declarative_scan_for_composite  s@     NN00	&&z4;;?((+-?	
r}   c                `   | j                   j                  }t        |dd      r|J t        |||d      }t	        |      }| j
                  s|| j                   _        t        |      }d}d}	d }
t        |      r%d}	t        |      }|d   }
|rt        |
      }
|dd  }n8t        |      r-t        |j                        rt        |j                        dd  }|D ]  }t        |t              s|} n d }|?| j                  s'|j                   j                  d | j                   _        |j                   j!                  | j                          | j                   j                  }|j"                  t$        j&                  ur-| j"                  t$        j&                  u r|j"                  | _        |j(                  | j(                  |j(                  | _        |j*                  | j*                  |j*                  | _        |j,                  r| j,                  sd| _        |j.                  r|j.                  | _        |j0                  -| j0                  t$        j&                  u r|j0                  | _        |j                   j2                  |j                   j4                  t7        j8                  dd	       |j:                  rst=        |j>                  j@                        D ]Q  \  }}|j>                  |   t$        j&                  us&|jC                  d
d      }t7        j8                  d| dd	       S |jD                  r| j                   jF                  sd }|	r||
g}n|g}|D ]  }|jI                  |      }| n t        |tJ              s t        |t              r@tM        |tJ              r0tO        jP                  d| j                   j2                  d| d      tO        jP                  d| d| j                   j2                  d      | j                   jS                  |       y y y )NT)check_genericcheck_for_plain_string)include_genericr   Fr   r   z_Can't use the 'key' or 'name' arguments in Annotated with mapped_column(); this will be ignoredz2.0.22dataclasses_ z
Argument 'zp' is a dataclass argument and cannot be specified within a mapped_column() bundled inside of an Annotated objectzThe type provided inside the z4 attribute Mapped annotation is the SQLAlchemy type z . Expected a Python type insteadz6Could not locate SQLAlchemy Core type for Python type z inside the z attribute Mapped annotation)*rk   rE  r/   r    r.   r  r(  r,   r0   r-   r1   	__value__r   r  r  r&  _mergerP   r(   r  r  r  r  rR   r  rr   rs   r%   warn_deprecatedr  r+  r  r,  replacerF  r  _resolve_typer+   
issubclassrB  rC  	_set_type)rj   rv   ru   argumentrw   rK  r(  our_typefind_mapped_inour_type_is_pep593raw_pep_593_typepep_593_componentselemuse_args_fromidxr/  new_sqltypechecks
check_types                      ro   rH  z(MappedColumn._init_column_for_annotation  s    ++""D
 &111.X14H !*!!#+DKK -h7*,"X!%!)(!31!4#=>N#O /3Nx Yx/A/A%B%h&8&89!"=N # 	!D$- $	!
 !M$,,!((00<&*#  ''4kk&&G &&fmm;MMV]]2 - 6 6 ,,8''/&3&B&B# 00<++3*7*J*J' 2211,0)++&3&B&B# ))5$$5#0#<#<  $$((4 '',,8$$K 55 )!44<<! HC &88=%}}- "kk."=,,( .D D %	 ??4;;#;#;K ""$45"$ 
&44Z@*
 h
3x."8Z8 ..77J KN#*$DF  !..  (zdkkoo5H I66  KK!!+.= $<?r}   N)r/  r   r0  r   )r0  r   r   r2   r  r  r  )r   r  r   )r   r   r   )ru   r6   rv   r   rw   rL   rr   r   rO  r   rP  rA   r   r   )
rv   r   ru   r6   r`  rA   rw   rL   r   r   )r   r   r   r   r   r   r`   r3  r	  rs   r   r   r   r   r   r=  r|   r%   r
  rR  rH  r   r}   ro   r  r    s   
I  "!!!++))%&N"      & 

 

??(+?7:?	?
=='*=69=	=
0
)0
  0
 	0

 *0
 0
 60
 20
 &C0
 !0
 
0
d T34

 
 *	

 
 
 .
 

 5
S/S/  S/ &	S/
 *S/ 
S/r}   r  N)]r   
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   rX  r   r   baser   r   descriptor_propsr   r   r   
interfacesr   r   r   r   r   r   r   relationshipsr   r%   r    r"   rB  r#   r$   sqlr&   r'   sql.baser(   
sql.schemar)   r*   sql.type_apir+   util.typingr,   r-   r.   r/   r0   r1   r2   _typingr3   r4   r5   r6   r7   rQ  r8   r   r9   r   r:   r   r;   r<   sql._typingr=   sql.elementsr>   r?   sql.operatorsr@   rA   rB   rC   rE   rF   __all__class_logger
IdentifiedrG   r  r  r   r}   ro   <module>r~     sm   #                $  / 7 - ) 2 / $ & & + / )         $ % 4 " ' $ # # )&/&1 2$',*,13Te3e-. HANN	HA HAV.,.@.D $p/rp/r}   