
    [h]s              	      0   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!d/l5m:Z: d!d0l5m;Z; d!d1l5m<Z< d!d2l5m=Z= er`dd3l>m?Z? dd4l>m@Z@ dd5l>mAZA dd6l>mBZB dd7lmCZC dd8lDmEZE dd9lFmGZG dd:lHmIZI dd;lJmKZK dd<lJmLZL d!d=lMmNZN d!d>lOmPZP d!d?lOmQZQ d!d@lRmSZS d!dAl5mTZT d!dBl5mUZU  edCeD          ZV edEeD          ZW edFdGD          ZXg dHZYe*jZ         G dI dJe eV         e#eV         ee*j[                              Z\ G dK dLe\eV         eeV                   Z] G dM dNee eV         eeV                   Z^dOS )Pz|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)exc)strategy_options)_DeclarativeMapped)class_mapper)CompositeProperty)ConcreteInheritedProperty)SynonymProperty)_AttributeOptions)_DEFAULT_ATTRIBUTE_OPTIONS)_IntrospectsAnnotations)_MapsColumns)MapperProperty)PropComparator)StrategizedProperty)RelationshipProperty)de_stringify_annotation   )
ForeignKey)log)util)	coercions)roles)_NoArg)Column)SchemaConst)
TypeEngine)de_optionalize_union_types)get_args)includes_none)	is_a_type)
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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 )crH   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)rJ   groupdeferred
instrumentrO   active_historyexpire_on_flush_creation_orderrL   rN   _deferred_column_loader_raise_column_loader_renders_in_subqueries	raiseloadN)attribute_optionsrP   rQ   rY   rO   rS   rT   infodoc_instrument_assume_readonly_dc_attributescolumn_ORMColumnExprArgument[_T]additional_columns_ORMColumnExprArgument[Any]rZ   Optional[_AttributeOptions]rP   rQ   rY   "Optional[Type[PropComparator[_T]]]rS   rT   r[   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)rZ   r^   c                L    g | ]!}t          j        t          j        |          "S  )r&   expectr'   LabeledColumnExprRole.0cs     h/var/www/api.easyaligner.net/htdocs/venv_linux/lib/python3.11/site-packages/sqlalchemy/orm/properties.py
<listcomp>z+ColumnProperty.__init__.<locals>.<listcomp>   s5     
 
 
ABIU8!<<
 
 
    r\   rQ   rR   ))rY   T)super__init__rJ   rP   rQ   rY   rR   	__class__
ComparatorrO   rS   rT   r[   updater\   reversedgetattrr%   set_creation_orderstrategy_key)selfr_   rZ   rP   rQ   rY   rO   rS   rT   r[   r\   r]   r^   ra   rJ   colrs   s                   rn   rr   zColumnProperty.__init__   s     	/+I 	 	
 	
 	
 )00
 
FM
 
 
 
 "% "- * 	
 -.IT"""?DHH--    c5$//?"DHE #  %%% '4?+
 > 	8!77	8 	8rp   	decl_scanr9   registryr7   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   )rJ   r   name)rz   r|   r}   r~   r   r   r   r   r   r   r_   s              rn   declarative_scanzColumnProperty.declarative_scan   s9     a:FJ;FKKK rp   Optional[MapperProperty[_T]]c                    | S Nrh   rz   s    rn   mapper_property_to_assignz(ColumnProperty.mapper_property_to_assign   s    rp   List[Tuple[Column[Any], int]]c                $    d | j         D             S )Nc                N    g | ]"}t          |t                    r|j        |df#S r   )
isinstancer)   tablerk   s     rn   ro   z4ColumnProperty.columns_to_assign.<locals>.<listcomp>   s?     
 
 
!V$$
 *+ F)8rp   rJ   r   s    rn   columns_to_assignz ColumnProperty.columns_to_assign   s%    
 
\
 
 
 	
rp   c                Z    d| j         v r| j        j        S d| j         vp| | j        j        vS )N)query_expressionT)rQ   T)ry   strategy_have_default_expressionparent_readonly_propsr   s    rn   %_memoized_attr__renders_in_subqueriesz4ColumnProperty._memoized_attr__renders_in_subqueries   s=    %):::=99!):: 
33	
rp   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   rz   state
strategiess      rn   &_memoized_attr__deferred_column_loaderz5ColumnProperty._memoized_attr__deferred_column_loader   sS     (^2
"EEK%**4844H
 
 	
rp   c                    t           j        j        }t           j        j        }|j                            | j        j        |                    | j	        d          | j	                  S )NTr   r   s      rn   #_memoized_attr__raise_column_loaderz2ColumnProperty._memoized_attr__raise_column_loader   sU     (^2
"EEK%**48T::H
 
 	
rp   roles.ColumnsClauseRolec                    | j         S )zsAllow the ColumnProperty to work in expression before it is turned
        into an instrumented attribute.
        )
expressionr   s    rn   __clause_element__z!ColumnProperty.__clause_element__  s    
 rp   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    rn   r   zColumnProperty.expression  s    ( |Arp   mapperMapper[Any]c                    | j         sd S t          j        |j        | j        |                     | |          || j                   d S )N)
comparatorparententityr\   )rR   r   register_descriptorclass_r   rO   r\   )rz   r   s     rn   instrument_classzColumnProperty.instrument_class%  sZ     	F&MH..tV<<	
 	
 	
 	
 	
 	
rp   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.)rq   do_initlenrJ   setr   primary_key
issupersetr%   warnr   )rz   rs   s    rn   r   zColumnProperty.do_init1  s    t|q  S)@%A%A%L%LL&
 &
  II ;;;Qa$(((L     !   rp   ColumnProperty[_T]c                F    t          | j        | j        | j        | j        dS )N)rQ   rP   rS   )rH   rJ   rQ   rP   rS   r   s    rn   copyzColumnProperty.copyA  s.    \]*.	
 
 
 	
rp   sessionr;   source_stateInstanceState[Any]source_dictr5   
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)rR   r   get_implr   has_identity_expire_attributes)rz   r   r   r   r   r   r   r   r   valueimpls              rn   mergezColumnProperty.mergeI  s      	FX$$)E =&+	$(###!**4844Yt<<<<<$ 	)B)B))DH: *     	 	)B)Brp   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   r[   expressionsz*RODescriptorReference[ColumnProperty[_PT]]propSequence[NamedColumn[Any]]r   r_   rG   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)rz   r_   per   r{   mapper_local_cols         rn   _orm_annotate_columnz.ColumnProperty.Comparator._orm_annotate_column  s     #B$& " "!Y]	+ +K C !6 ?#& (=FFsKK
 /?N+==--BB)."EE  rp   NamedColumn[_PT]c                    d S r   rh   r   s    rn   r   z,ColumnProperty.Comparator.__clause_element__  s      rp   c                    | j         r0|                      | j        j        d         | j        j                  S |                     | j        j        d                   S r   )adapterr   rJ   r   r   r   s    rn   #_memoized_method___clause_element__z=ColumnProperty.Comparator._memoized_method___clause_element__  sO     | G||DI$5a$8$)-HHH001B11EFFFrp   r>   c                r    |                                  }	 |j        S # t          $ r | j        j        cY S w xY w)z(The .info dictionary for this attribute.)r   r[   AttributeErrorr   )rz   ces     rn   _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 rh   )r   r   r   rl   r{   rz   s     rn   ro   zHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>  s;        LLdim44  rp   c                :    g | ]}                     |          S rh   )r   r   s     rn   ro   zHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>  s4       7:D--c22  rp   )r   r   rJ   r   s   `rn   _memoized_attr_expressionsz4ColumnProperty.Comparator._memoized_attr_expressions  so     |    #y0   
   >Bi>O   rp   r   r   r   c                F    t          |                                 |          S )zproxy attribute access down to the mapped column.

            this allows user-defined comparison methods to be accessed.
            )rw   r   )rz   r   s     rn   _fallback_getattrz+ColumnProperty.Comparator._fallback_getattr  s     
 42244c:::rp   oprA   otherkwargsColumnElement[Any]c                >     ||                                  g|R i |S r   r   rz   r  r  r  s       rn   operatez!ColumnProperty.Comparator.operate  s0     2d--//B%BBB6BBBrp   c                f    |                                  } ||                    ||          |fi |S r   r   _bind_paramrz   r  r  r  r{   s        rn   reverse_operatez)ColumnProperty.Comparator.reverse_operate  s=     ))++C2coob%00#@@@@@rp   N)r_   rG   r   rG   )r   r   )r   r>   )r   r   )r   r   r   r   r  rA   r  r   r  r   r   r  )__name__
__module____qualname____doc__r   	__slots____annotations__r   r   r   r   r   r   r  r  rh   rp   rn   rt   r   c  s         	 	$  	DCI8888////	&	 &	 &	 &	P  	BAAAA	G 	G 	G 	G	& 	& 	& 	&	 	 	 	"	; 	; 	; 	;	C 	C 	C 	C
	A 	A 	A 	A 	A 	Arp   rt   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    rn   __str__zColumnProperty.__str__  sI    { 	)$( 	)??4(((4;%.//#5@@rp   )r_   r`   ra   rb   rZ   rc   rP   rM   rQ   rK   rY   rK   rO   rd   rS   rK   rT   rK   r[   re   r\   rM   r]   rK   r^   rK   r|   r9   r}   r7   r~   r   r   rM   r   r   r   r   r   r   r   r   r   rK   r   r   r   r   r   r   )r   rK   )r   r   )r   r   )r   r   r   r   )r   r   )r   r   )r   r;   r   r   r   r5   r   r   r   r5   r   rK   r   r   r   r   r   r   r   r   )!r  r  r  r  r   _COLUMN_TOKENstrategy_wildcard_keyinherit_cache_links_to_entityr  r  rr   r   propertyr   r   r   r%   preload_moduler   r   r   r   r   r   r   r   MemoizedSlotsr   rF   rt   r  __classcell__)rs   s   @rn   rH   rH   a   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*

 

 

 

      
 
 
 
   4BA BA BA BA BAT')< BA BA BAHA A A A A A A Arp   rH   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   rh   rp   rn   r'  r'    s!          Mrp   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dAd            ZdBdZdCd"ZdCd#ZdDd$ZdEd4Z ej        d5          dFd9            ZdGd;Zd<S )H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_   rU   _sort_orderforeign_keys_has_nullable_has_insert_defaultrQ   deferred_groupdeferred_raiseloadrS   _attribute_options_has_dataclass_arguments_use_existing_columnzUnion[_NoArg, bool]rQ   rK   r/  rM   r.  
Column[_T]r_   zOptional[Set[ForeignKey]]r+  r   r0  argr   kwc                   |                     dt                    x| _        |                     dd          | _        d uo7t          k    o,t	          fdt          j                  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	                  | _        |                     d
d          | _        |                     dt          j	                  | _        t#          dt%          |i |          | _        | j        j        | _        d|v o"|                    d          d t,          j        fv| _        t3          j        |            d S )NrZ   use_existing_columnFc              3  R   K   | ]!\  }}|d k    |         t           j        uV  "dS )dataclasses_defaultN)r(   NO_ARG)rl   iattr	attr_optss      rn   	<genexpr>z(MappedColumn.__init__.<locals>.<genexpr>4  sJ        At000 !FM10000 rp   insert_defaultdefaultr.  r/  rQ   rS   
sort_orderr3  nullable)popr   r0  r2  any	enumerate_fieldsr1  r(   r:  r-  r9  r.  r/  rQ   rS   r*  r   r)   r_   r+  getr*   NULL_UNSPECIFIEDr,  r%   rx   )rz   r4  r5  r?  r=  s       @rn   rr   zMappedColumn.__init__*  s   .0ff!;/
 /
 	
) %'FF+@%$H$H! T! 77    ():;;     	%  0&-@@#1#F # 	:*ByMM*&-??%9ByM ff%5t<<"$&&)=t"D"Dz6=99 ff%5u==66,>><);););<< K4'2- 
"&&2D2D(M
 3
 	%%%%%rp   r   r3   c                   | j                             | j                   } | j        j        di ||_        | j        |_        | j        |_        | j        |_        |j        j        |_        | j        |_        | j	        |_	        | j
        |_
        | j        |_        | j        |_        | j        |_        | j        |_        t          j        |           |S )Nrh   )rs   __new__r_   _copyrQ   r.  r/  r+  rS   r,  r0  r-  r1  r2  r*  r%   rx   )rz   r5  news      rn   rK  zMappedColumn._copyQ  s    n$$T^44&T[&,,,,
}!0!%!8:2!0 .!%!8"&":'+'D$#'#< *$$$
rp   r   c                    | j         j        S r   )r_   r   r   s    rn   r   zMappedColumn.nameb  s    {rp   r   c                    | j         }|t          j        u rt          | j        p| j                  }|s| j        r.t          | j        || j        | j        | j	        | j                  S d S )N)rQ   rP   rY   rZ   rS   )
rQ   r(   r:  rK   r.  r/  rS   rH   r_   r0  )rz   effective_deferreds     rn   r   z&MappedColumn.mapper_property_to_assignf  s    !]..!%#>t'>" "  
	!4 
	!+)1"&"9#2    4rp   r   c                J    | j         | j        t          j        ur| j        ndfgS r   )r_   r*  r(   r:  r   s    rn   r   zMappedColumn.columns_to_assignz  s8      'v}<< $$	
 		
rp   c                    | j         S r   )r_   r   s    rn   r   zMappedColumn.__clause_element__  s
    {rp   r  rA   r  r  r  c                >     ||                                  g|R i |S r   r  r  s       rn   r  zMappedColumn.operate  s0     r$))++>e>>>v>>>rp   c                f    |                                  } ||                    ||          |fi |S r   r
  r  s        rn   r  zMappedColumn.reverse_operate  s=     %%''r#//"e,,c<<V<<<rp   c                    t                      S r   )r)  r   s    rn   found_in_pep593_annotatedz&MappedColumn.found_in_pep593_annotated  s     ~~rp   r|   r9   r}   r7   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_   r2  inheritssingleis_deferredsa_excArgumentErrorr   r   local_tablerm   rG  r   type_isnullr+  _raise_for_required_init_column_for_annotation)rz   r|   r}   r~   r   r   r   r   r   r   r_   supercls_mappercolnamesqltypes                 rn   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(('		
 	
 	
 	
 	
rp   zsqlalchemy.orm.decl_base
param_nameparam_annotationrB   c                    t           j        j        }|                    || j                   |                     ||||           d S r   )r%   r   orm_decl_base_undefer_column_namer_   r`  )rz   r}   r~   r   r   rd  re  	decl_bases           rn   declarative_scan_for_compositez+MappedColumn.declarative_scan_for_composite  sS     N0	&&z4;???((+-?	
 	
 	
 	
 	
rp   argumentc                   | j         j        }t          |dd          r|J t          |||d          }t	          |          }| j        s|| j         _        t          |          }d}d}	d }
t          |          r5d}	t          |          }|d         }
|rt          |
          }
|dd          }n?t          |          r0t          |j                  rt          |j                  dd          }|D ]}t          |t                    r|} nd }|| j        s|j         j        d | 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        | _        |j        | j        t$          j        u r|j        | _        |j         j        |j         j        t7          j        dd	           |j        rgt=          |j        j                   D ]M\  }}|j        |         t$          j        ur/|!                    d
d          }t7          j        d| dd	           N|j"        r| j         j#        sd }|	r||
g}n|g}|D ]}|$                    |          }| nt          |tJ                    s*t          |t                    r:tM          |tJ                    r%tO          j(        d| j         j        d| d          tS          |          r%tO          j(        d| d| j         j        d          tO          j(        d| j         j        d|d          | j         *                    |           d S d S d S )NT)check_genericcheck_for_plain_string)include_genericrh   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 annotationzThe object provided inside the zC attribute Mapped annotation is not a Python type, it's the object z. Expected a Python type.)+r_   r]  r0   r!   r.   r,  rB  r,   r1   r-   r2   	__value__r   r)  r-  r@  _mergerQ   r(   r:  r.  r/  r2  rS   r*  r   r   r%   warn_deprecatedr1  rE  r0  rF  replacer^  r+  _resolve_typer+   
issubclassorm_excMappedAnnotationErrorr/   	_set_type)rz   r~   r}   rk  r   rc  rB  our_typefind_mapped_inour_type_is_pep593raw_pep_593_typepep_593_componentselemuse_args_fromidxr4  new_sqltypechecks
check_types                      rn   r`  z(MappedColumn._init_column_for_annotation  s    +"D
 
 
 	 &111.X14  H !**! 	,#+DK -h77*,"X 
	>!%!)(!3!31!4 P#=>N#O#O /3NNx   	>Yx/A%B%B 	>%h&899!""=N # 	! 	!D$--  $ !M$,+!(0<&*# ''444k&G &fm;;MV]22 - 6 ,8'/&3&B# 0<+3*7*J' 2111 -1)+ C&3&B# )5$55#0#<  $(4 ',8$K   5  )!4<! !  HC &8=%}- - "kk."==,D D D D %	   ? %	/4;#; %	/K " $"$45"$  
&44Z@@*E + h
33 x.."8Z88 "7F F F#F F F  
 x(( !76 (6 66:ko6 6 6   "7 $+/    +3        K!!+.....K%	/ %	/ %	/ %	/rp   N)r4  r   r5  r   )r5  r   r   r3   r  r  r  )r   r3  r  )r   r   r  )r}   r7   r~   r   r   rM   r   r   rd  r   re  rB   r   r   )
r~   r   r}   r7   rk  rB   r   rM   r   r   )r  r  r  r  r  r  rr   rK  r"  r   r   r   r   r  r  rU  r   r%   r#  rj  r`  rh   rp   rn   r)  r)    s        
 I  "!!!!!!!++++))))%& %& %& %&N   "       X     X& 

 

 

 X

   ? ? ? ?
= = = =   
0
 0
 0
 0
d T344
 
 
 54
Z/ Z/ Z/ Z/ Z/ Z/rp   r)  N)_r  
__future__r   typingr   r   r   r   r   r	   r
   r   r   r   r   r   rq  r   r   rx  r   baser   r   descriptor_propsr   r   r   
interfacesr   r   r   r   r   r   r   relationshipsr    r%   r!   rZ  r#   r$   sqlr&   r'   sql.baser(   
sql.schemar)   r*   sql.type_apir+   util.typingr,   r-   r.   r/   r0   r1   r2   r3   _typingr4   r5   r6   r7   r8   ri  r9   r   r:   r   r;   r   r<   r=   sql._typingr>   sql.elementsr?   r@   sql.operatorsrA   rB   rC   rD   rF   rG   __all__class_logger
IdentifiedrH   r'  r)  rh   rp   rn   <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-...   HA HA HA HA HAN	HA HA HAV    .,.@.D   $w/ w/ w/ w/ w/rw/ w/ w/ w/ w/rp   