o
    Šåg‰q  ã                   @  s~  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�ryd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dC�ZTedDedC�ZUedEdFdC�ZVg dG¢ZWe)jXG dHdI„ dIeeT e!eT ee)jYƒƒZZG dJdK„ dKeZeT eeT ƒZ[G dLdM„ 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)Ú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                      s4  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œde‡ fd d!„Zdfd3d4„Zedgd6d7„ƒZedhd9d:„ƒZdid;d<„Ze d=d>¡djd@dA„ƒZe d=d>¡djdBdC„ƒZdkdEdF„ZedkdGdH„ƒZdldKdL„Zdm‡ fdMdN„ZdndPdQ„Zdod_d`„ZG dadb„ dbejee ƒZdpdcdd„Z‡  Z S )qrF   z¬Describes 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)rG   ÚgroupÚdeferredÚ
instrumentrL   Úactive_historyÚexpire_on_flushÚ_creation_orderrI   rK   Ú_deferred_column_loaderÚ_raise_column_loaderÚ_renders_in_subqueriesÚ	raiseloadN)Úattribute_optionsrM   rN   rV   rL   rP   rQ   ÚinfoÚdocÚ_instrumentÚ_assume_readonly_dc_attributesÚcolumnú_ORMColumnExprArgument[_T]Úadditional_columnsú_ORMColumnExprArgument[Any]rW   úOptional[_AttributeOptions]rM   rN   rV   ú"Optional[Type[PropComparator[_T]]]rP   rQ   rX   úOptional[_InfoType]rY   rZ   r[   c                  sø   t ƒ j||d� |f| }dd„ |D ƒ| _|| _|| _|| _|| _|d ur'|n| jj| _	|| _
|| _|	d ur<| j |	¡ |
d urD|
| _nt| jƒD ]}t|dd ƒ}
|
d urZ|
| _ nqId | _t | ¡ d| jfd| jff| _| jrz|  jd7  _d S d S )N)rW   r[   c                 S  s   g | ]	}t  tj|¡‘qS © )r%   Úexpectr&   ÚLabeledColumnExprRole©Ú.0Úcrc   rc   úU/var/www/html/flaskapp/venv/lib/python3.10/site-packages/sqlalchemy/orm/properties.pyÚ
<listcomp>¡   s    ÿz+ColumnProperty.__init__.<locals>.<listcomp>rY   rN   rO   ))rV   T)ÚsuperÚ__init__rG   rM   rN   rV   rO   Ú	__class__Ú
ComparatorrL   rP   rQ   rX   ÚupdaterY   ÚreversedÚgetattrr$   Úset_creation_orderÚstrategy_key)Úselfr\   rW   rM   rN   rV   rL   rP   rQ   rX   rY   rZ   r[   r^   rG   Úcol©rm   rc   ri   rl   Œ   sH   þ
ÿÿýþ
þÿzColumnProperty.__init__Ú	decl_scanr7   Úregistryr5   Úclsú	Type[Any]Úoriginating_moduleÚkeyÚstrÚmapped_containerúOptional[Type[Mapped[Any]]]Ú
annotationúOptional[_AnnotationScanType]Úextracted_mapped_annotationÚis_dataclass_fieldÚreturnÚNonec
                 C  s2   | j d }
|
jd u r||
_|
jd u r||
_d S d S ©Nr   )rG   r|   Úname)rt   rw   rx   ry   r{   r|   r~   r€   r‚   rƒ   r\   rc   rc   ri   Údeclarative_scanÇ   s   



ÿzColumnProperty.declarative_scanúOptional[MapperProperty[_T]]c                 C  s   | S ©Nrc   ©rt   rc   rc   ri   Úmapper_property_to_assignÙ   s   z(ColumnProperty.mapper_property_to_assignúList[Tuple[Column[Any], int]]c                 C  s   dd„ | j D ƒS )Nc                 S  s(   g | ]}t |tƒr|jd u r|df‘qS r†   )Ú
isinstancer(   Útablerf   rc   rc   ri   rj   à   s    ý
þz4ColumnProperty.columns_to_assign.<locals>.<listcomp>©rG   r‹   rc   rc   ri   Úcolumns_to_assignÝ   s   þz ColumnProperty.columns_to_assignc                 C  s(   d| j v r	| jjS d| j vp| | jjvS )N)Úquery_expressionT)rN   T)rs   ÚstrategyÚ_have_default_expressionÚparentÚ_readonly_propsr‹   rc   rc   ri   Ú%_memoized_attr__renders_in_subqueriesæ   s
   


ÿz4ColumnProperty._memoized_attr__renders_in_subquerieszsqlalchemy.orm.statezsqlalchemy.orm.strategiesú _InstallLoaderCallableProto[Any]c                 C  s.   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|   ©rt   ÚstateÚ
strategiesrc   rc   ri   Ú&_memoized_attr__deferred_column_loaderî   s   
ýz5ColumnProperty._memoized_attr__deferred_column_loaderc                 C  s0   t jj}t jj}|j | jj| | j	d¡| j	¡S )NTr™   r    rc   rc   ri   Ú#_memoized_attr__raise_column_loaderú   s   ýz2ColumnProperty._memoized_attr__raise_column_loaderúroles.ColumnsClauseRolec                 C  ó   | j S )zsAllow the ColumnProperty to work in expression before it is turned
        into an instrumented attribute.
        )Ú
expressionr‹   rc   rc   ri   Ú__clause_element__  s   z!ColumnProperty.__clause_element__c                 C  s
   | 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‹   rc   rc   ri   r§     s   
zColumnProperty.expressionÚmapperúMapper[Any]c                 C  s0   | j sd S tj|j| j|  | |¡|| jd� d S )N)Ú
comparatorÚparententityrY   )rO   r   Úregister_descriptorÚclass_r|   rL   rY   )rt   r©   rc   rc   ri   Úinstrument_class#  s   

ûzColumnProperty.instrument_classc                   s^   t ƒ  ¡  t| jƒdkr+t| jjƒ | j¡r-t 	d| j| jd | jd | j
f ¡ d S d S d S )Nr   z»On mapper %s, primary key column '%s' is being combined with distinct primary key column '%s' in attribute '%s'. Use explicit properties to give each column its own mapped attribute name.r   )rk   Údo_initÚlenrG   Úsetr•   Úprimary_keyÚ
issupersetr$   Úwarnr|   r‹   rv   rc   ri   r°   /  s   
ÿúÿýzColumnProperty.do_initúColumnProperty[_T]c                 C  s   t | j| j| j| jdœŽS )N)rN   rM   rP   )rF   rG   rN   rM   rP   r‹   rc   rc   ri   Úcopy?  s   üzColumnProperty.copyÚsessionr9   Úsource_stateúInstanceState[Any]Úsource_dictr3   Ú
dest_stateÚ	dest_dictÚloadÚ
_recursiveúDict[Any, object]Ú_resolve_conflict_mapú#Dict[_IdentityKeyType[Any], object]c	                 C  s€   | j sd S | j|v r(|| j }	|s|	|| j< d S | | j¡}
|
 |||	d ¡ d S |jr<| j|vr>|j|| jgdd� d S d S d S )NT)Ú	no_loader)rO   r|   Úget_implr²   Úhas_identityÚ_expire_attributes)rt   r¸   r¹   r»   r¼   r½   r¾   r¿   rÁ   ÚvalueÚimplrc   rc   ri   ÚmergeG  s   



ÿÿzColumnProperty.mergec                   @  s€   e Zd ZU dZesdZded< ded< 	 d%d
d„Zer d&dd„Zd&dd„Z	d'dd„Z
d(dd„Zd)dd„Zd*d d!„Zd*d"d#„Zd$S )+z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¨   rX   Úexpressionsz*RODescriptorReference[ColumnProperty[_PT]]ÚpropúSequence[NamedColumn[Any]]rÊ   r\   rE   r„   c                 C  sT   | 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)rt   r\   Úper   ru   Úmapper_local_colrc   rc   ri   Ú_orm_annotate_column…  s   ü
ÿz.ColumnProperty.Comparator._orm_annotate_columnúNamedColumn[_PT]c                 C  s   d S rŠ   rc   r‹   rc   rc   ri   r¨   ¯  s    z,ColumnProperty.Comparator.__clause_element__c                 C  s0   | j r|   | jjd | jj¡S |  | jjd ¡S r†   )ÚadapterrË   rG   r|   rÜ   r‹   rc   rc   ri   Ú#_memoized_method___clause_element__±  s   z=ColumnProperty.Comparator._memoized_method___clause_element__r<   c                 C  s,   |   ¡ }z|jW S  ty   | jj Y S w )z(The .info dictionary for this attribute.)r¨   rX   ÚAttributeErrorrË   )rt   Úcerc   rc   ri   Ú_memoized_attr_info¹  s   ÿz-ColumnProperty.Comparator._memoized_attr_infoc                   s2   ˆ j r‡ fdd„ˆ jjD ƒS ‡ fdd„ˆ jjD ƒS )z¡The full sequence of columns referenced by this
            attribute, adjusted for any aliasing in progress.

            .. versionadded:: 1.3.17

            c                   s   g | ]
}ˆ   |ˆ jj¡‘qS rc   )rÞ   rË   r|   ©rg   ru   r‹   rc   ri   rj   Ê  s    ÿÿzHColumnProperty.Comparator._memoized_attr_expressions.<locals>.<listcomp>c                   s   g | ]}ˆ   |¡‘qS rc   )rÜ   rã   r‹   rc   ri   rj   Ï  s    
ÿ)rÞ   rË   rG   r‹   rc   r‹   ri   Ú_memoized_attr_expressionsÂ  s   
þ
ÿz4ColumnProperty.Comparator._memoized_attr_expressionsr|   r}   r   c                 C  s   t |  ¡ |ƒS )z‡proxy attribute access down to the mapped column.

            this allows user-defined comparison methods to be accessed.
            )rq   r¨   )rt   r|   rc   rc   ri   Ú_fallback_getattrÓ  s   z+ColumnProperty.Comparator._fallback_getattrÚopr?   ÚotherÚkwargsúColumnElement[Any]c                 O  ó   ||   ¡ g|¢R i |¤ŽS rŠ   ©r¨   ©rt   ræ   rç   rè   rc   rc   ri   ÚoperateÚ  ó   z!ColumnProperty.Comparator.operatec                 K  ó"   |   ¡ }|| ||¡|fi |¤ŽS rŠ   ©r¨   Ú_bind_param©rt   ræ   rç   rè   ru   rc   rc   ri   Úreverse_operateß  ó   z)ColumnProperty.Comparator.reverse_operateN)r\   rE   r„   rE   )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ó   rc   rc   rc   ri   rn   a  s    
 

(



	

rn   c                 C  s.   | j r| jst | ¡S t| j jjƒd | j S )NÚ.)r•   r|   ÚobjectÚ__repr__r}   r®   rö   r‹   rc   rc   ri   Ú__str__å  s   
zColumnProperty.__str__)r\   r]   r^   r_   rW   r`   rM   rJ   rN   rH   rV   rH   rL   ra   rP   rH   rQ   rH   rX   rb   rY   rJ   rZ   rH   r[   rH   ©rw   r7   rx   r5   ry   rz   r{   rJ   r|   r}   r~   r   r€   r�   r‚   r�   rƒ   rH   r„   r…   ©r„   r‰   ©r„   r�   )r„   rH   )r„   r˜   )r„   r¥   )r©   rª   r„   r…   )r„   r…   )r„   r¶   )r¸   r9   r¹   rº   r»   r3   r¼   rº   r½   r3   r¾   rH   r¿   rÀ   rÁ   rÂ   r„   r…   ©r„   r}   )!rö   r÷   rø   rù   r   Ú_COLUMN_TOKENÚstrategy_wildcard_keyÚinherit_cacheÚ_links_to_entityrû   rú   rl   rˆ   ÚpropertyrŒ   r‘   r—   r$   Úpreload_moduler£   r¤   r¨   r§   r¯   r°   r·   rÉ   ÚMemoizedSlotsr   rD   rn   rÿ   Ú__classcell__rc   rc   rv   ri   rF   _   sV   
 ò
;






 rF   c                   @  s   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  rc   rc   rc   ri   r  ë  s    r  c                   @  sÔ   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< dIdd„ZdJdd„ZedKdd„ƒZ	edLdd„ƒZ
edMdd „ƒZdNd!d"„ZdOd(d)„ZdOd*d+„ZdPd,d-„ZdQd=d>„Ze d?¡dRdCdD„ƒZdSdFdG„ZdHS )TÚ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\   rR   Ú_sort_orderÚforeign_keysÚ_has_nullableÚ_has_insert_defaultrN   Údeferred_groupÚdeferred_raiseloadrP   Ú_attribute_optionsÚ_has_dataclass_argumentsÚ_use_existing_columnzUnion[_NoArg, bool]rN   rH   r  rJ   r  ú
Column[_T]r\   zOptional[Set[ForeignKey]]r  r   r  Úargr   Úkwc                   s$  |  dt¡ | _‰ |  dd¡| _ˆ d uo%ˆ tko%t‡ fdd„tˆ jƒD ƒƒ| _|  dtj	¡}|tj	u| _
| j
r<||d< nˆ jtj	urGˆ 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| _t | ¡ d S )NrW   Úuse_existing_columnFc                 3  s*   � | ]\}}|d krˆ | t juV  qdS )Údataclasses_defaultN)r'   ÚNO_ARG)rg   ÚiÚattr©Ú	attr_optsrc   ri   Ú	<genexpr>2  s   € þýz(MappedColumn.__init__.<locals>.<genexpr>Úinsert_defaultÚdefaultr  r  rN   rP   Ú
sort_orderr  Únullable)Úpopr   r  r  ÚanyÚ	enumerateÚ_fieldsr  r'   r  r  r  r  r  rN   rP   r  r   r(   r\   r  Úgetr)   ÚNULL_UNSPECIFIEDr  r$   rr   )rt   r  r  r"  rc   r  ri   rl   (  s:   
ÿÿþý



þzMappedColumn.__init__r„   r1   c                 K  sŠ   | j  | j ¡}| jjdi |¤Ž|_| j|_| j|_| j|_|jj|_| j|_| j	|_	| j
|_
| j|_| j|_| j|_| j|_t |¡ |S )Nrc   )rm   Ú__new__r\   Ú_copyrN   r  r  r  rP   r  r  r  r  r  r  r$   rr   )rt   r  Únewrc   rc   ri   r-  O  s   

zMappedColumn._copyr}   c                 C  s   | j jS rŠ   )r\   r‡   r‹   rc   rc   ri   r‡   `  s   zMappedColumn.namer‰   c                 C  sL   | j }|tju rt| jp| jƒ}|s| jr$t| j|| j| j| j	| jd�S d S )N)rN   rM   rV   rW   rP   )
rN   r'   r  rH   r  r  rP   rF   r\   r  )rt   Úeffective_deferredrc   rc   ri   rŒ   d  s   

ÿ
ú	z&MappedColumn.mapper_property_to_assignr�   c                 C  s"   | j | jtjur| jfgS dfgS r†   )r\   r  r'   r  r‹   rc   rc   ri   r‘   x  s   ÿýÿûÿzMappedColumn.columns_to_assignc                 C  r¦   rŠ   )r\   r‹   rc   rc   ri   r¨   …  s   zMappedColumn.__clause_element__ræ   r?   rç   rè   ré   c                 O  rê   rŠ   rë   rì   rc   rc   ri   rí   ˆ  rî   zMappedColumn.operatec                 K  rï   rŠ   rð   rò   rc   rc   ri   ró   �  rô   zMappedColumn.reverse_operatec                 C  s   t ƒ S rŠ   )r  r‹   rc   rc   ri   Úfound_in_pep593_annotated“  s   z&MappedColumn.found_in_pep593_annotatedrw   r7   rx   r5   ry   rz   r{   r|   r~   r   r€   r�   r‚   rƒ   r…   c
                 C  sÀ   | j }
| jr/|jr/|jr/|jrt d¡‚t|jdƒ}|
jd ur"|
jn|}|j	j
 ||
¡ }
| _ |
jd u r7||
_|
jd u r?||
_|
j}|d u rV|jrT| j jsT|  ||¡ nd S |  ||||¡ d S )Nz3Can't use use_existing_column with deferred mappersF)r\   r  ÚinheritsÚsingleÚis_deferredÚsa_excÚArgumentErrorr   r‡   Úlocal_tablerh   r*  r|   ÚtypeÚ_isnullr  Ú_raise_for_requiredÚ_init_column_for_annotation)rt   rw   rx   ry   r{   r|   r~   r€   r‚   rƒ   r\   Úsupercls_mapperÚcolnameÚsqltyperc   rc   ri   rˆ   ˜  s>   ÿþýÿ
ÿ

üzMappedColumn.declarative_scanzsqlalchemy.orm.decl_baseÚ
param_nameÚparam_annotationr@   c                 C  s*   t jj}| || j¡ |  ||||¡ d S rŠ   )r$   rš   Úorm_decl_baseÚ_undefer_column_namer\   r:  )rt   rx   ry   r{   r|   r>  r?  Ú	decl_baserc   rc   ri   Údeclarative_scan_for_compositeÊ  s
   
ÿz+MappedColumn.declarative_scan_for_compositeÚargumentc                 C  sÞ  | j j}t|ddd�r|d usJ ‚t|||dd�}t|ƒ}| js$|| j _t|ƒ}d}d}	d }
t|ƒrId}	t	|ƒ}|d }
|rBt|
ƒ}
|dd … }nt
|ƒr[t|jƒr[t	|jƒdd … }|D ]}t|tƒrh|} nq]d }|d u�r| js}|j jd ur}d | j _|j  | j ¡ | j j}|jtjur˜| jtju r˜|j| _|jd ur¦| jd u r¦|j| _|jd ur´| jd u r´|j| _|jr½| js½d| _|jrÄ|j| _|jd urÓ| jtju rÓ|j| _|j jd usß|j jd uråt dd	¡ |j�rt|jj ƒD ]\}}|j| tju�r| !d
d¡}t d|› d�d	¡ qï|j"�rk| j j#�smd }|	�r ||
g}n|g}|D ]}| $|¡}|d u�r3 n0�q%t|t%ƒ�sGt|tƒ�rUt&|t%ƒ�rUt' (d| j j›d|› d�¡‚t' (d|› d| j j›d�¡‚| j  )|¡ d S d S d S )NT)Úcheck_genericÚcheck_for_plain_string)Úinclude_genericrc   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)*r\   r7  r.   r   r-   r  r%  r+   r/   r,   r0   Ú	__value__rŽ   r  r  r#  Ú_mergerN   r'   r  r  r  r  rP   r  r|   r‡   r$   Úwarn_deprecatedr  r(  r  r)  Úreplacer8  r  Ú_resolve_typer*   Ú
issubclassr4  r5  Ú	_set_type)rt   ry   rx   rD  r{   r=  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_typerc   rc   ri   r:  Ú  sÐ   ÿÿ
þ
ÿ



ÿþ
ýÿÿ
ü€


ÿÿþþÿÿÿÿâz(MappedColumn._init_column_for_annotationN)r  r   r  r   )r  r   r„   r1   r  r  r  )r„   r  rõ   )r„   r   r   )rx   r5   ry   rz   r{   rJ   r|   r}   r>  r}   r?  r@   r„   r…   )
ry   rz   rx   r5   rD  r@   r{   rJ   r„   r…   )rö   r÷   rø   rù   rú   rû   rl   r-  r  r‡   rŒ   r‘   r¨   rí   ró   r0  rˆ   r$   r	  rC  r:  rc   rc   rc   ri   r  ý  s2   
 

'




2r  N)]rù   Ú
__future__r   Útypingr   r   r   r   r   r   r	   r
   r   r   r   r   rI  r   r   Úbaser   r   Údescriptor_propsr   r   r   Ú
interfacesr   r   r   r   r   r   r   Úrelationshipsr   r$   r   r!   r4  r"   r#   Úsqlr%   r&   Úsql.baser'   Ú
sql.schemar(   r)   Úsql.type_apir*   Úutil.typingr+   r,   r-   r.   r/   r0   r1   Ú_typingr2   r3   r4   r5   r6   rB  r7   r©   r8   r¸   r9   r¡   r:   r;   Úsql._typingr<   Úsql.elementsr=   r>   Úsql.operatorsr?   r@   rA   rB   rD   rE   Ú__all__Úclass_loggerÚ
IdentifiedrF   r  r  rc   rc   rc   ri   Ú<module>   s¨   	
ü   
ý