
    )fnr              	         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.m/Z/ d!d)l0m1Z1 d!d*l0m2Z2 d!d+l3m4Z4 d!d,l5m6Z6 d!d-l5m7Z7 d!d.l5m8Z8 d!d/l5m9Z9 d!d0l5m:Z: d!d1l5m;Z; d!d2l5m<Z< d!d3l5m=Z= er`dd4l>m?Z? dd5l>m@Z@ dd6l>mAZA dd7l>mBZB dd8lmCZC dd9lDmEZE dd:lFmGZG dd;lHmIZI dd<lJmKZK dd=lJmLZL d!d>lMmNZN d!d?lOmPZP d!d@lOmQZQ d!dAlRmSZS d!dBl5mTZT d!dCl5mUZU  edDeE      ZV edFeE      ZW edGdHE      ZXg dIZYe*j                   G dJ dKeeV   e!eV   ee*j                               Z\ G dL dMe\eV   eeV         Z] G dN dOeeeV   eeV         Z^yP)Qz|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)de_stringify_union_elements   )exc)
ForeignKey)log)util)	coercions)roles)_NoArg)Column)SchemaConst)
TypeEngine)de_optionalize_union_types)
is_fwd_ref)is_optional_union)	is_pep593)	is_pep695)is_union)Self)typing_get_args)_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 )-rI   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)rK   groupdeferred
instrumentrP   active_historyexpire_on_flush_creation_orderrM   rO   _deferred_column_loader_raise_column_loader_renders_in_subqueries	raiseloadN)attribute_optionsrQ   rR   rZ   rP   rT   rU   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)r[   r_   r]   rR   rS   ))rZ   T)super__init__r'   expectr(   LabeledColumnExprRolerK   rQ   rR   rZ   rS   	__class__
ComparatorrP   rT   rU   r\   updater]   reversedgetattrr&   set_creation_orderstrategy_key)selfcolumnr[   rQ   rR   rZ   rP   rT   rU   r\   r]   r^   r_   additional_columnsrK   ccolre   s                    V/var/www/html/flask-app/venv/lib/python3.12/site-packages/sqlalchemy/orm/properties.pyrb   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   )rK   keyname)rl   	decl_scanregistryclsoriginating_modulert   mapped_container
annotationextracted_mapped_annotationis_dataclass_fieldrm   s              rq   declarative_scanzColumnProperty.declarative_scan   s8     a::FJ;;FK     c                    | S N rl   s    rq   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 rs   )rK   
isinstancer*   table)rl   ro   s     rq   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)rR   T)rk   strategy_have_default_expressionparent_readonly_propsr   s    rq   %_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LoadDeferredColumnsrt   rl   state
strategiess      rq   &_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      rq   #_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    rq   __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   )rK   r   s    rq   r   zColumnProperty.expression  s    ( ||Ar   c                    | j                   sy t        j                  |j                  | j                  | j                  | |      || j                         y )N)
comparatorparententityr]   )rS   r   register_descriptorclass_rt   rP   r]   )rl   mappers     rq   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.)ra   do_initlenrK   setr   primary_key
issupersetr&   warnrt   )rl   re   s    rq   r   zColumnProperty.do_init1  s    t||q S)@)@%A%L%LLL&
 II ;;Qa$((L&
 r   c                l    t        | j                  | j                  | j                  | j                  dS )N)rR   rQ   rT   )rI   rK   rR   rQ   rT   r   s    rq   copyzColumnProperty.copyA  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)rS   rt   get_implr   has_identity_expire_attributes)rl   sessionsource_statesource_dict
dest_state	dest_dictload
_recursive_resolve_conflict_mapvalueimpls              rq   mergezColumnProperty.mergeI  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   r\   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   rt   _parentmapper_polymorphic_adaptertraverse	_annotate_set_propagate_attrs)rl   rm   per   rp   mapper_local_cols         rq   _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    rq   r   z,ColumnProperty.Comparator.__clause_element__  s    r   c                    | j                   r=| j                  | j                  j                  d   | j                  j                        S | j	                  | j                  j                  d         S rs   adapterr   rK   rt   r   r   s    rq   #_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   r\   AttributeErrorr   )rl   ces     rq   _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   )rl   rp   s     rq   _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.
            )ri   r   )rl   rt   s     rq   _fallback_getattrz+ColumnProperty.Comparator._fallback_getattr  s    
 4224c::r   c                6     || j                         g|i |S r   r   rl   opotherkwargss       rq   operatez!ColumnProperty.Comparator.operate  s"     d--/B%B6BBr   c                V    | j                         } ||j                  ||      |fi |S r   r   _bind_paramrl   r   r   r   rp   s        rq   reverse_operatez)ColumnProperty.Comparator.reverse_operate  s/     ))+Ccoob%0#@@@r   N)rm   rH   returnrH   )r   zNamedColumn[_PT])r   r?   )r   r   )rt   strr   r   r   rB   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   rq   rf   r   c  s    	$ CI88//	&	P A	G	G	&	"	;	C"	C,/	C;>	C	C
	A"	A+.	A:=	A	Ar   rf   c                    | j                   r| j                  st        j                  |       S t	        | j                   j
                  j                        dz   | j                  z   S )N.)r   rt   object__repr__r   r   r   r   s    rq   __str__zColumnProperty.__str__  sG    {{$((??4((4;;%%../#5@@r   )rm   z_ORMColumnExprArgument[_T]rn   z_ORMColumnExprArgument[Any]r[   zOptional[_AttributeOptions]rQ   rN   rR   rL   rZ   rL   rP   z"Optional[Type[PropComparator[_T]]]rT   rL   rU   rL   r\   zOptional[_InfoType]r]   rN   r^   rL   r_   rL   rv   r:   rw   r8   rx   	Type[Any]ry   rN   rt   r   rz   zOptional[Type[Mapped[Any]]]r{   Optional[_AnnotationScanType]r|   r  r}   rL   r   Noner   zOptional[MapperProperty[_T]]r   zList[Tuple[Column[Any], int]])r   rL   )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   r6   r   r  r   r6   r   rL   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   rb   r~   propertyr   r   r   r&   preload_moduler   r   r   r   r   r   r   r   MemoizedSlotsr   rG   rf   r   __classcell__)re   s   @rq   rI   rI   a   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   rI   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   rq   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


    )rm   rV   _sort_orderforeign_keys_has_nullable_has_insert_defaultrR   deferred_groupdeferred_raiseloadrT   _attribute_options_has_dataclass_arguments_use_existing_columnzUnion[_NoArg, bool]rR   rL   r  rN   r  
Column[_T]rm   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 )Nr[   use_existing_columnFc              3  X   K   | ]!  \  }}|d k7  r|   t         j                  u # yw)dataclasses_defaultN)r)   NO_ARG).0iattr	attr_optss      rq   	<genexpr>z(MappedColumn.__init__.<locals>.<genexpr>4  s3      At00 !FMM1s   '*insert_defaultdefaultr  r  rR   rT   
sort_orderr  nullable)popr   r  r  any	enumerate_fieldsr  r)   r!  r  r   r  r  rR   rT   r  r   r*   rm   r  getr+   NULL_UNSPECIFIEDr  r&   rj   )rl   argkwr'  r%  s       @rq   rb   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   )re   __new__rm   _copyrR   r  r  r  rT   r  r  r  r  r  r  r&   rj   )rl   r2  news      rq   r5  zMappedColumn._copyQ  s    nn$$T^^4&T[[&&,,
}}!00!%!8!8::22!00 ..!%!8!8"&":":'+'D'D$#'#<#< **$
r   c                .    | j                   j                  S r   )rm   ru   r   s    rq   ru   zMappedColumn.nameb  s    {{r   c                (   | j                   }|t        j                  u r#t        | j                  xs | j
                        }|s| j                  rCt        | j                  || j                  | j
                  | j                  | j                        S y )N)rR   rQ   rZ   r[   rT   )
rR   r)   r!  rL   r  r  rT   rI   rm   r  )rl   effective_deferreds     rq   r   z&MappedColumn.mapper_property_to_assignf  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 rs   )rm   r  r)   r!  r   s    rq   r   zMappedColumn.columns_to_assignz  sM      ''v}}< $$	
 		
 	
 		
r   c                    | j                   S r   )rm   r   s    rq   r   zMappedColumn.__clause_element__  s    {{r   c                6     || j                         g|i |S r   r   r   s       rq   r   zMappedColumn.operate  s"     $))+>e>v>>r   c                V    | j                         } ||j                  ||      |fi |S r   r   r   s        rq   r   zMappedColumn.reverse_operate  s/     %%'#//"e,c<V<<r   c                    t               S r   )r  r   s    rq   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)rm   r  inheritssingleis_deferredsa_excArgumentErrorr   ru   local_tablero   r/  rt   type_isnullr  _raise_for_required_init_column_for_annotation)rl   rv   rw   rx   ry   rt   rz   r{   r|   r}   rm   supercls_mappercolnamesqltypes                 rq   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_namerm   rJ  )rl   rw   rx   ry   rt   
param_nameparam_annotation	decl_bases           rq   declarative_scan_for_compositez+MappedColumn.declarative_scan_for_composite  s@     NN00	&&z4;;?((+-?	
r   c                   | j                   j                  }t        |t              st	        |d      r|J t        |||d      }t        |      r|J t        |||      }t        |      }| j                  s|| j                   _
        t        |      }d }|}	t        |      r|j                  }t        |      rfd}
t        |      }|d   }t        |      r*t        |      }d}| j                  s|| j                   _
        |dd  D ]  }t        |t               s|} n nd}
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.                  | _        |j0                  | j0                  |j0                  | _        |j2                  r| j2                  sd| _        |j4                  r|j4                  | _        |j6                  -| j6                  t*        j,                  u r|j6                  | _        |j                   j8                  |j                   j:                  t=        j>                  dd       |j@                  rstC        |jD                  jF                        D ]Q  \  }}|jD                  |   t*        j,                  us&|jI                  d	d
      }t=        j>                  d| dd       S |jJ                  r| j                   jL                  sd }|
r|	|g}n|	g}|D ]  }|jO                  |      }| n t        |tP              s t        |t              r@tS        |tP              r0tU        jV                  d| j                   j8                  d| d      tU        jV                  d| d| j                   j8                  d      | j                   jY                  |       y y y )NT)check_generic)include_genericr   r   Fz_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)-rm   rG  r   r   r.   r    r2   r!   r/   r  r*  r-   r1   	__value__r0   r4   r  r  r(  _mergerR   r)   r!  r  r  r  rT   r  rt   ru   r&   warn_deprecatedr  r-  r  r.  replacerH  r  _resolve_typer,   
issubclassrD  rE  	_set_type)rl   rx   rw   argumentry   rM  r*  our_typeuse_args_fromour_original_typeour_type_is_pep593pep_593_componentsraw_pep_593_typeelemidxr1  new_sqltypechecks
check_types                      rq   rJ  z(MappedColumn._init_column_for_annotation  s<    ++""h$
D)
 &11.X14H H%112X1H %X.!!#+DKK -h7$X))HX!%!0!:1!4 !12#=>N#O ))+3DKK(*12. dL1$(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4Z@*
 h
3x."8Z8 ..77J KN#*$DF  !..  (zdkkoo5H I66  KK!!+.; $<?r   N)r1  r   r2  r   )r2  r   r   r3   r  r  r  )r   r  r   )r   r   r   )rw   r8   rx   r   ry   rN   rt   r   rQ  r   rR  rC   r   r  )
rx   r   rw   r8   ra  rC   ry   rN   r   r  )r   r   r   r   r   r   rb   r5  r  ru   r   r   r   r   r   r?  r~   r&   r  rT  rJ  r   r   rq   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
Z/Z/  Z/ &	Z/
 *Z/ 
Z/r   r  N)_r   
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   rY  r   r   baser   r   descriptor_propsr   r   r   
interfacesr   r   r   r   r   r   r   relationshipsr   r&   r    r!   r#   rD  r$   r%   sqlr'   r(   sql.baser)   
sql.schemar*   r+   sql.type_apir,   util.typingr-   r.   r/   r0   r1   r2   r3   r4   _typingr5   r6   r7   r8   r9   rS  r:   r   r;   r   r<   r   r=   r>   sql._typingr?   sql.elementsr@   rA   sql.operatorsrB   rC   rD   rE   rG   rH   __all__class_logger
IdentifiedrI   r  r  r   r   rq   <module>r     ss   #                $  / 7 - ) 2 / $ & & + / ) -         $ % 4 $ + # # "  ))&/&1 2$',*,13Te3e-. HANN	HA HAV.,.@.D $w/rw/r   