
    Wdh              	         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)jX         G dH dIeeT         e eT         ee)jY                              ZZ G dJ dKeZeT         eeT                   Z[ G dL dMeeeT         eeT                   Z\dNS )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   )
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_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dW fd ZdXd2ZedYd4            ZedZd6            Zd[d7Z ej        d8d9          d\d;            Z ej        d8d9          d\d<            Zd]d>Zed]d?            Zd^dBZd_ fdCZd`dEZdadSZ G dT dUej        ee                   ZdbdVZ xZ S )crG   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_attributescolumn_ORMColumnExprArgument[_T]additional_columns_ORMColumnExprArgument[Any]rY   Optional[_AttributeOptions]rO   rP   rX   "Optional[Type[PropComparator[_T]]]rR   rS   rZ   Optional[_InfoType]r[   r\   r]   c               B   t                                          ||           |f|z   }d |D             | _        || _        || _        || _        || _        ||n| j        j        | _	        || _
        || _        |	| j                            |	           |
|
| _        n:t          | j                  D ]}t!          |dd           }
|
	|
| _         nd | _        t#          j        |            d| j        fd| j        ff| _        | j        r| xj        dz  c_        d S d S )N)rY   r]   c                L    g | ]!}t          j        t          j        |          "S  )r&   expectr'   LabeledColumnExprRole.0cs     U/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/sqlalchemy/orm/properties.py
<listcomp>z+ColumnProperty.__init__.<locals>.<listcomp>   s5     
 
 
ABIU8!<<
 
 
    r[   rP   rQ   ))rX   T)super__init__rI   rO   rP   rX   rQ   	__class__
ComparatorrN   rR   rS   rZ   updater[   reversedgetattrr%   set_creation_orderstrategy_key)selfr^   rY   rO   rP   rX   rN   rR   rS   rZ   r[   r\   r]   r`   rI   colrr   s                   rm   rq   zColumnProperty.__init__   s     	/+I 	 	
 	
 	
 )00
 
FM
 
 
 
 "% "- * 	
 -.IT"""?DHH--    c5$//?"DHE #  %%% '4?+
 > 	8!77	8 	8ro   	decl_scanr8   registryr6   cls	Type[Any]originating_modulekeystrmapped_containerOptional[Type[Mapped[Any]]]
annotationOptional[_AnnotationScanType]extracted_mapped_annotationis_dataclass_fieldreturnNonec
                \    | j         d         }
|
j        ||
_        |
j        	||
_        d S d S Nr   )rI   r   name)ry   r{   r|   r}   r   r   r   r   r   r   r^   s              rm   declarative_scanzColumnProperty.declarative_scan   s9     a:FJ;FKKK ro   Optional[MapperProperty[_T]]c                    | S Nrg   ry   s    rm   mapper_property_to_assignz(ColumnProperty.mapper_property_to_assign   s    ro   List[Tuple[Column[Any], int]]c                $    d | j         D             S )Nc                N    g | ]"}t          |t                    r|j        |df#S r   )
isinstancer)   tablerj   s     rm   rn   z4ColumnProperty.columns_to_assign.<locals>.<listcomp>   s?     
 
 
!V$$
 *+ F)8ro   rI   r   s    rm   columns_to_assignz ColumnProperty.columns_to_assign   s%    
 
\
 
 
 	
ro   c                Z    d| j         v r| j        j        S d| j         vp| | j        j        vS )N)query_expressionT)rP   T)rx   strategy_have_default_expressionparent_readonly_propsr   s    rm   %_memoized_attr__renders_in_subqueriesz4ColumnProperty._memoized_attr__renders_in_subqueries   s=    %):::=99!):: 
33	
ro   zsqlalchemy.orm.statezsqlalchemy.orm.strategies _InstallLoaderCallableProto[Any]c                    t           j        j        }t           j        j        }|j                            | j        j        |                    | j	                  | j	                  S r   
r%   	preloaded	orm_stateorm_strategiesr<   "_instance_level_callable_processorr   class_managerLoadDeferredColumnsr   ry   state
strategiess      rm   &_memoized_attr__deferred_column_loaderz5ColumnProperty._memoized_attr__deferred_column_loader   sS     (^2
"EEK%**4844H
 
 	
ro   c                    t           j        j        }t           j        j        }|j                            | j        j        |                    | j	        d          | j	                  S )NTr   r   s      rm   #_memoized_attr__raise_column_loaderz2ColumnProperty._memoized_attr__raise_column_loader   sU     (^2
"EEK%**48T::H
 
 	
ro   roles.ColumnsClauseRolec                    | j         S )zsAllow the ColumnProperty to work in expression before it is turned
        into an instrumented attribute.
        )
expressionr   s    rm   __clause_element__z!ColumnProperty.__clause_element__  s    
 ro   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   r   r   s    rm   r   zColumnProperty.expression  s    ( |Aro   mapperMapper[Any]c                    | j         sd S t          j        |j        | j        |                     | |          || j                   d S )N)
comparatorparententityr[   )rQ   r   register_descriptorclass_r   rN   r[   )ry   r   s     rm   instrument_classzColumnProperty.instrument_class#  sZ     	F&MH..tV<<	
 	
 	
 	
 	
 	
ro   c                d   t                                                       t          | j                  dk    rtt	          | j        j                                      | j                  rEt          j	        d| j        d| j        d         d| j        d         d| j
        d	           d S d S d S )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.)rp   do_initlenrI   setr   primary_key
issupersetr%   warnr   )ry   rr   s    rm   r   zColumnProperty.do_init/  s    t|q  S)@%A%A%L%LL&
 &
  II ;;;Qa$(((L     !   ro   ColumnProperty[_T]c                F    t          | j        | j        | j        | j        dS )N)rP   rO   rR   )rG   rI   rP   rO   rR   r   s    rm   copyzColumnProperty.copy?  s.    \]*.	
 
 
 	
ro   sessionr:   source_stateInstanceState[Any]source_dictr4   
dest_state	dest_dictload
_recursiveDict[Any, object]_resolve_conflict_map#Dict[_IdentityKeyType[Any], object]c	                ,   | j         sd S | j        |v rO|| j                 }	|s|	|| j        <   d S |                    | j                  }
|
                    |||	d            d S |j        r)| j        |vr"|                    || j        gd           d S d S d S )NT)	no_loader)rQ   r   get_implr   has_identity_expire_attributes)ry   r   r   r   r   r   r   r   r   valueimpls              rm   mergezColumnProperty.mergeG  s      	FX$$)E =&+	$(###!**4844Yt<<<<<$ 	)B)B))DH: *     	 	)B)Bro   c                  v    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dS )#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   r^   rF   r   c                    | j         }|||| j        j        d}|}| j        j        r&|}| j        j                            |          }||d<   |                    |                              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   r   _parentmapper_polymorphic_adaptertraverse	_annotate_set_propagate_attrs)ry   r^   per   rz   mapper_local_cols         rm   _orm_annotate_columnz.ColumnProperty.Comparator._orm_annotate_column  s     #B$& " "!Y]	+ +K C !6 ?#& (=FFsKK
 /?N+==--BB)."EE  ro   NamedColumn[_PT]c                    d S r   rg   r   s    rm   r   z,ColumnProperty.Comparator.__clause_element__  s    ro   c                    | j         r0|                      | j        j        d         | j        j                  S |                     | j        j        d                   S r   )adapterr   rI   r   r   r   s    rm   #_memoized_method___clause_element__z=ColumnProperty.Comparator._memoized_method___clause_element__  sO     | G||DI$5a$8$)-HHH001B11EFFFro   r=   c                r    |                                  }	 |j        S # t          $ r | j        j        cY S w xY w)z(The .info dictionary for this attribute.)r   rZ   AttributeErrorr   )ry   ces     rm   _memoized_attr_infoz-ColumnProperty.Comparator._memoized_attr_info  sL     ((**B&w! & & &y~%%%&s    66c                r      j         r fd j        j        D             S  fd j        j        D             S )zThe full sequence of columns referenced by this
            attribute, adjusted for any aliasing in progress.

            .. versionadded:: 1.3.17

            c                P    g | ]"}                     |j        j                  #S rg   )r   r   r   rk   rz   ry   s     rm   rn   zHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>  s;        LLdim44  ro   c                :    g | ]}                     |          S rg   )r   r   s     rm   rn   zHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>  s4       7:D--c22  ro   )r   r   rI   r   s   `rm   _memoized_attr_expressionsz4ColumnProperty.Comparator._memoized_attr_expressions  so     |    #y0   
   >Bi>O   ro   r   r   r   c                F    t          |                                 |          S )zproxy attribute access down to the mapped column.

            this allows user-defined comparison methods to be accessed.
            )rv   r   )ry   r   s     rm   _fallback_getattrz+ColumnProperty.Comparator._fallback_getattr  s     
 42244c:::ro   opr@   otherkwargsColumnElement[Any]c                >     ||                                  g|R i |S r   r   ry   r   r  r  s       rm   operatez!ColumnProperty.Comparator.operate  s0     2d--//B%BBB6BBBro   c                f    |                                  } ||                    ||          |fi |S r   r   _bind_paramry   r   r  r  rz   s        rm   reverse_operatez)ColumnProperty.Comparator.reverse_operate  s=     ))++C2coob%00#@@@@@ro   N)r^   rF   r   rF   )r   r   )r   r=   )r   r   )r   r   r   r   r   r@   r  r   r  r   r   r  )__name__
__module____qualname____doc__r   	__slots____annotations__r   r   r   r   r   r   r  r  rg   ro   rm   rs   r   a  s        	 	$  	DCI8888////	&	 &	 &	 &	P  	   	G 	G 	G 	G	& 	& 	& 	&	 	 	 	"	; 	; 	; 	;	C 	C 	C 	C
	A 	A 	A 	A 	A 	Aro   rs   c                    | j         r| j        st                              |           S t	          | j         j        j                  dz   | j        z   S )N.)r   r   object__repr__r   r   r  r   s    rm   __str__zColumnProperty.__str__  sI    { 	)$( 	)??4(((4;%.//#5@@ro   )r^   r_   r`   ra   rY   rb   rO   rL   rP   rJ   rX   rJ   rN   rc   rR   rJ   rS   rJ   rZ   rd   r[   rL   r\   rJ   r]   rJ   r{   r8   r|   r6   r}   r~   r   rL   r   r   r   r   r   r   r   r   r   rJ   r   r   r   r   r   r   )r   rJ   )r   r   )r   r   )r   r   r   r   )r   r   )r   r   )r   r:   r   r   r   r4   r   r   r   r4   r   rJ   r   r   r   r   r   r   r   r   )!r  r  r  r  r   _COLUMN_TOKENstrategy_wildcard_keyinherit_cache_links_to_entityr  r  rq   r   propertyr   r   r   r%   preload_moduler   r   r   r   r   r   r   r   MemoizedSlotsr   rE   rs   r  __classcell__)rr   s   @rm   rG   rG   _   s          -:M####''''%%%%0000I* :>#AE$ $$(! /498 98 98 98 98 98 98 98v   $    X 
 
 
 X

 
 
 
 T/1LMM	
 	
 	
 NM	
 T/1LMM	
 	
 	
 NM	
       X*

 

 

 

      
 
 
 
   4CA CA CA CA CAT')< CA CA CAJA A A A A A A Aro   rG   c                      e Zd ZdZdZdS )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  rg   ro   rm   r&  r&    s!          Mro   r&  c                     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dAdZdBd!ZdBd"ZdCd#ZdDd3Z ej        d4          dEd8            ZdFd:Zd;S )G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


    )r^   rT   _sort_orderforeign_keys_has_nullable_has_insert_defaultrP   deferred_groupdeferred_raiseloadrR   _attribute_options_has_dataclass_arguments_use_existing_columnrJ   rP   r.  rL   r-  
Column[_T]r^   zOptional[Set[ForeignKey]]r*  r   r/  argr   kwc                Z   |                     dt                    x| _        }|                     dd          | _        d| _        |S|t          k    rH|j        t          j        urd| _        n-|j        t          j        us|j	        t          j        urd| _        |                     dt          j                  }|t          j        u| _
        | j
        r||d<   n|j        t          j        ur
|j        |d<   |                     dd           | _        |                     dd           | _        |                     d	t          j                  | _        | j        t          j        u r t          | j        p| j                  | _        |                     d
d          | _        |                     dd          | _        t%          dt'          |i |          | _        | j        j        | _        d|v o"|                    d          d t.          j        fv| _        t5          j        |            d S )NrY   use_existing_columnFTinsert_defaultdefaultr-  r.  rP   rR   
sort_orderr   r2  nullable)popr   r/  r1  r0  dataclasses_default_factoryr(   NO_ARGdataclasses_initdataclasses_reprr,  dataclasses_defaultr-  r.  rP   rJ   rR   r)  r   r)   r^   r*  getr*   NULL_UNSPECIFIEDr+  r%   rw   )ry   r3  r4  	attr_optsr7  s        rm   rq   zMappedColumn.__init__)  s   .0ff!;/
 /
 	
) %'FF+@%$H$H!(-% Y2L%L%L4FMII04-- *&-??-V]BB04- 0&-@@#1#F # 	:*ByMM*&-??%9ByM ff%5t<<"$&&)=t"D"Dz6=99=FM)) #>t'> DM !ff%5u==66,22<);););<< K4'2- 
"&&2D2D(M
 3
 	%%%%%ro   r   r1   c                   | j                             | j                   } | j        j        di ||_        | j        |_        | j        |_        | j        |_        |j        j        |_        | j        |_        | j	        |_	        | j
        |_
        | j        |_        | j        |_        | j        |_        | j        |_        t          j        |           |S )Nrg   )rr   __new__r^   _copyrP   r-  r.  r*  rR   r+  r/  r,  r0  r1  r)  r%   rw   )ry   r4  news      rm   rF  zMappedColumn._copyU  s    n$$T^44&T[&,,,,
}!0!%!8:2!0 .!%!8"&":'+'D$#'#< *$$$
ro   r   c                    | j         j        S r   )r^   r   r   s    rm   r   zMappedColumn.namef  s    {ro   r   c                    | j         s| j        r3t          | j        | j         | j        | j        | j        | j                  S d S )N)rP   rO   rX   rY   rR   )rP   rR   rG   r^   r-  r.  r/  r   s    rm   r   z&MappedColumn.mapper_property_to_assignj  sV    = 
	D/ 
	!)1"&"9#2    4ro   r   c                     | j         | j        fgS r   )r^   r)  r   s    rm   r   zMappedColumn.columns_to_assignx  s    d./00ro   c                    | j         S r   )r^   r   s    rm   r   zMappedColumn.__clause_element__|  s
    {ro   r   r@   r  r  r  c                >     ||                                  g|R i |S r   r  r  s       rm   r  zMappedColumn.operate  s0     r$))++>e>>>v>>>ro   c                f    |                                  } ||                    ||          |fi |S r   r	  r  s        rm   r  zMappedColumn.reverse_operate  s=     %%''r#//"e,,c<<V<<<ro   c                    t                      S r   )r(  r   s    rm   found_in_pep593_annotatedz&MappedColumn.found_in_pep593_annotated  s     ~~ro   r{   r8   r|   r6   r}   r~   r   r   r   r   r   r   r   r   r   c
                   | j         }
| j        ru|j        rn|j        rg|j        rt          j        d          t          |j        d          }|
j        |
j        n|}|j	        j
                            ||
          x}
| _         |
j        ||
_        |
j        ||
_        |
j        }|,|j        r#| j         j        s|                     ||           nd S |                     ||||           d S )Nz3Can't use use_existing_column with deferred mappersF)r^   r1  inheritssingleis_deferredsa_excArgumentErrorr   r   local_tablerl   rA  r   type_isnullr*  _raise_for_required_init_column_for_annotation)ry   r{   r|   r}   r   r   r   r   r   r   r^   supercls_mappercolnamesqltypes                 rm   r   zMappedColumn.declarative_scan  s3     %	"	  	
 $ *I   +9+=uEEO%+[%<fkk#G#2#>#@#D#D$ $ FT[ :FJ;FK+&. t{'? ((c2222(('		
 	
 	
 	
 	
ro   zsqlalchemy.orm.decl_base
param_nameparam_annotationrA   c                    t           j        j        }|                    || j                   |                     ||||           d S r   )r%   r   orm_decl_base_undefer_column_namer^   rZ  )ry   r|   r}   r   r   r^  r_  	decl_bases           rm   declarative_scan_for_compositez+MappedColumn.declarative_scan_for_composite  sS     N0	&&z4;???((+-?	
 	
 	
 	
 	
ro   argumentc                   | j         j        }t          |t                    st	          |d          r|J t          |||d          }t          |          r|J t          |||          }t          |          }| j	        s|| j         _
        t          |          }d }t          |          rsd}	t          |          }
|
d         }t          |          r$t          |          }d}| j	        s|| j         _
        |
dd          D ]}t          |t                    r|} nnd}	d }|J| j        s|j         j        d | j         _        |j                             | j                    | j         j        }|j        r| j         j        sd }|	r||g}n|g}|D ]}|                    |          }| nt          |t*                    s*t          |t                    r:t-          |t*                    r%t/          j        d| j         j        d| d	          t/          j        d
| d| j         j        d          | j                             |           d S d S d S )NT)check_generic)include_genericr   r   Fz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)r^   rW  r   r   r-   r   r0   r    r.   r+  r:  r,   r/   r2   r(  r,  r8  _mergerX  r*  _resolve_typer+   
issubclassrT  rU  r   	_set_type)ry   r}   r|   re  r   r]  r:  our_typeuse_args_fromour_type_is_pep593pep_593_componentsraw_pep_593_typeelemnew_sqltypechecks
check_types                   rm   rZ  z(MappedColumn._init_column_for_annotation  s#    +"h$$ 	
D)
 )
 )
 	 &111.X14  H H 	%1112X1 H %X..! 	,#+DK -h77X 	$!%!0!:!:1!4 !122 4#=>N#O#O ) 4+3DK(*122.  dL11 $(ME "'#$,+!(0<&*# ''444k&G? 	/4;#; 	/K! $"$45"$  
&44Z@@*E + h
33 x.."8Z88 !.F F F#F F F   !.6 (6 66:ko6 6 6   K!!+.....;	/ 	/ 	/ 	/ro   N)r3  r   r4  r   )r4  r   r   r1   r  r  r  )r   r2  r  )r   r   r  )r|   r6   r}   r~   r   rL   r   r   r^  r   r_  rA   r   r   )
r}   r~   r|   r6   re  rA   r   rL   r   r   )r  r  r  r  r  r  rq   rF  r!  r   r   r   r   r  r  rO  r   r%   r"  rd  rZ  rg   ro   rm   r(  r(    s        
 I  NNN!!!!++++))))*& *& *& *&X   "       X     X 1 1 1 X1   ? ? ? ?
= = = =   
0
 0
 0
 0
d T344
 
 
 54
Z/ Z/ Z/ Z/ Z/ Z/ro   r(  N)]r  
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r    r   r   baser   r   descriptor_propsr   r   r   
interfacesr   r   r   r   r   r   r   relationshipsr   r%   r   r    r"   rT  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   rc  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(  rg   ro   rm   <module>r     s    # " " " " "                                                                                     $ $ $ $ $ $       / / / / / / 7 7 7 7 7 7 - - - - - - ) ) ) ) ) ) 2 2 2 2 2 2 / / / / / / $ $ $ $ $ $ & & & & & & & & & & & & + + + + + + / / / / / / ) ) ) ) ) ) - - - - - -                                                 $ $ $ $ $ $ % % % % % % 4 4 4 4 4 4 $ $ $ $ $ $ + + + + + + # # # # # # " " " " " "       ) ) ) ) ) ) 4))))))&&&&&&//////&&&&&&111111      222222$$$$$$'''''',,,,,,******,,,,,,111111333333WTge3ge-...   IA IA IA IA IAN	IA IA IAX    .,.@.D   $m/ m/ m/ m/ m/rm/ m/ m/ m/ m/ro   