Viewing File: /opt/hc_python/lib/python3.12/site-packages/sqlalchemy/orm/__pycache__/decl_base.cpython-312.pyc

�

a��gXE��t�dZddlmZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddl$m%Z%ddl$m&Z&dd l'm(Z(dd!l'm)Z)dd"l*m+Z+dd#l*m,Z,dd$l*m-Z-dd%l*m.Z.dd&l*m/Z/dd'l*m0Z0dd(l1m2Z2dd)l3m4Z4dd*l3m5Z5dd+l6m7Z7dd,l6m8Z8dd-l6m9Z9dd.l6m:Z:d/d0lm;Z;d/dlmZd/d1lm6Z6d/d2l<m=Z=d/d3l>m?Z?d/d4l@mAZAd/d5l@mBZBd/d6l6mCZCd/d7lDmEZEd/d8lDmFZFd/d9lDmGZGd/d:lDmHZHd/d;lDmIZId/d<lDmJZJer0dd=lmKZKdd>lmLZLdd?l$mMZMdd@lNmOZOddAlmPZPd/dBlQmRZRd/dCl@mSZSd/dDlTmUZUedEe�F�ZVe
eWefZXeeedGfe
eWeffZYGdH�dIeIe �ZZGdJ�dKeZe eI�Z[GdL�dMeJ�Z\				dhdN�Z]didO�Z^djdP�Z_	dk							dldQ�Z`dmdR�Za								dndS�Zb										dodT�Zce6j�dU�dpdV��Ze								dqdW�ZfGdX�dY�ZgGdZ�d[eg�ZhGd\�d]e�ZiGd^�d_eg�Zje6j�dU�						drd`��ZkGda�dbej�Zl								dsdc�Zmdtdd�Zndude�Zodfeo_pdvdg�Zqy)wz(Internal implementation for declarative.�)�annotationsN)�Any)�Callable)�cast)�Dict)�Iterable)�List)�Mapping)�
NamedTuple)�NoReturn)�Optional)�Sequence)�Tuple)�Type)�
TYPE_CHECKING)�TypeVar)�Union�)�
attributes)�clsregistry)�exc)�instrumentation)�	mapperlib)�_O)�attr_is_internal_proxy)�InstrumentedAttribute)�QueryableAttribute)�_is_mapped_class)�InspectionAttr)�CompositeProperty)�SynonymProperty)�_AttributeOptions)�_DCAttributeOptions)�_IntrospectsAnnotations)�_MappedAttribute)�_MapsColumns)�MapperProperty)�Mapper)�ColumnProperty)�MappedColumn)�_extract_mapped_subtype)�_is_mapped_annotation)�class_mapper)�de_stringify_annotation�)�event)�util)�
expression)�_NoArg)�Column)�Table)�topological)�_AnnotationScanType)�get_args)�
is_fwd_ref)�
is_literal)�Protocol)�	TypedDict)�
_ClassDict)�
_RegistryType)�Mapped)�
declared_attr)�ClassManager)�NamedColumn)�MetaData)�
FromClause�_T)�bound.c�8�eZdZUdZded<ded<ded<d
d�Zy	)�MappedClassProtocolz�A protocol representing a SQLAlchemy mapped class.

    The protocol is generic on the type of class, use
    ``MappedClassProtocol[Any]`` to allow any mapped class.
    �str�__name__�
Mapper[_O]�
__mapper__rD�	__table__c��y�N�)�self�kws  �I/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/decl_base.py�__call__zMappedClassProtocol.__call__e����N)rRr�returnr)rJ�
__module__�__qualname__�__doc__�__annotations__rTrPrVrSrHrHZs����M�����,rVrHc�T�eZdZUdZded<ded<ded<ded	<d
ed<dd�Zdd
�Zy)�_DeclMappedClassProtocolz:Internal more detailed version of ``MappedClassProtocol``.rC�metadatarI�
__tablename__�
_MapperKwArgs�__mapper_args__�Optional[_TableArgsType]�__table_args__�Optional[_DataclassArguments]�_sa_apply_dc_transformsc��yrOrP�rQs rS�__declare_first__z*_DeclMappedClassProtocol.__declare_first__qrUrVc��yrOrPrgs rS�__declare_last__z)_DeclMappedClassProtocol.__declare_last__ss��rVN�rW�None)rJrXrYrZr[rhrjrPrVrSr]r]hs)��@�����"�"�,�,�:�:�,�+rVr]c�^�eZdZUded<ded<ded<ded<ded<ded<ded<d	ed
<y)�_DataclassArgumentszUnion[_NoArg, bool]�init�repr�eq�order�unsafe_hash�
match_args�kw_onlyz'Union[_NoArg, Callable[..., Type[Any]]]�dataclass_callableN�rJrXrYr[rPrVrSrnrnvs2��
��
������$�$�#�#�
 � �?�?rVrnc��tj|�rtj|�St|�r
t	|d��Sy)NF)�	configure)�_DeferredMapperConfig�has_cls�config_for_clsrr-��clss rS�_declared_mapping_infor�s;���$�$�S�)�$�3�3�C�8�8�	�#�	��C�5�1�1�rVc�d�tj|�rt|dd��St|�ryy)a�return True if this class will be used as a superclass to set in
    'inherits'.

    This includes deferred mapper configs that aren't mapped yet, however does
    not include classes with _sa_decl_prepare_nocascade (e.g.
    ``AbstractConcreteBase``); these concrete-only classes are not set up as
    "inherits" until after mappers are configured using
    mapper._set_concrete_base()

    �_sa_decl_prepare_nocascadeT��strictF)rzr{�_get_immediate_cls_attrrr}s rS�_is_supercls_for_inheritsr��s<���$�$�S�)�*��-�d�
�
�	
�
�#�	��rVc���|tury|jjdd�r#|jD]}t	|�}|��|cSyt|�}|r|jS|S)N�__abstract__F)�object�__dict__�get�	__bases__�"_resolve_for_abstract_or_classical�_dive_for_cls_manager�class_)r~�base_�sup�
clsmanagers    rSr�r��sg��
�f�}���|�|�����.��]�]�E�4�U�;�C����
�#�
�*�3�/�
���$�$�$��JrVc��|dk7sJ�t|t�sy||jvrt||�S|jddD]E}t|�du}||jvs�||us|r||jvs�4n	|r�9t||�cSy)a�return an attribute of the class that is either present directly
    on the class, e.g. not on a superclass, or is from a superclass but
    this superclass is a non-mapped mixin, that is, not a descendant of
    the declarative base and is also not classically mapped.

    This is used to detect attributes that indicate something about
    a mapped class independently from any mapped classes that it may
    inherit from.

    r�Nr)�
issubclassr�r��getattr�__mro__r�r�)r~�attrnamer��base�_is_classical_inheritss     rSr�r��s��� �~�%�%�%��c�6�"���3�<�<���s�H�%�%����A�B���!6�t�!<�D�!H���t�}�}�$��C�K�*0�����&�d�.��4��*�*� �rVc�\�|jD]}tj|�}|s�|cSyrO)r�r�opt_manager_of_class)r~r��managers   rSr�r��s4��
����.8�.M�.M��/
����N��rVc�4�tj|||di�SrO)�
_MapperConfig�
setup_mapping)�registryr~�dict_s   rS�_as_declarativer��s��
�&�&�x��e�T�2�F�FrVc�J�t||||�td|�jS)NzMappedClassProtocol[_O])�_ImperativeMapperConfigrrL)r�r~�table�	mapper_kws    rS�_mapperr��s&���H�c�5�)�<��)�3�/�:�:�:rVzsqlalchemy.orm.decl_apic��tjjj}t	||tj
f�SrO)r1�	preloaded�orm_decl_api�_declared_attr_common�
isinstance�
classproperty)�objr�s  rS�_is_declarative_propsr�s1�� �N�N�7�7�M�M���c�1�4�3E�3E�F�G�GrVc�n�t|�r*t|dd�rtjd|�d|�d��yy)N�
_cascadingFz1@declared_attr.cascading is not supported on the z attribute on class z5.  This attribute invokes for subclasses in any case.T)r�r�r1�warn)r��namer~s   rS�_check_declared_props_nocascader�s8���S�!��3��e�,��I�I�.2�3�8�
�
�rVc��eZdZUdZded<ded<ded<ded	<e												dd
��Z						dd�Zdd�Zddd
�Z	dd�Z
y)r�)r~�	classname�
properties�declared_attr_reg�__weakref__�	Type[Any]r~rIr�z_util.OrderedDict[str, Union[Sequence[NamedColumn[Any]], NamedColumn[Any], MapperProperty[Any]]]r�zDict[declared_attr[Any], Any]r�c�0�tj|�}|r'|j|urtjd|�d���|j
j
dd�ryt|dd��xst|d�}|rt|||||�St|||||�S)	N�Class z, already has been instrumented declarativelyr�Fr�Tr��_sa_decl_prepare)rr�r�r�InvalidRequestErrorr�r�r��hasattrrz�_ClassScanMapperConfig)r~r��cls_r�r�r�r��	defer_maps        rSr�z_MapperConfig.setup_mapping*s����1�1�#�6���w�~�~��-��)�)����K�L��
��=�=���^�U�3��+��.�t�
�/�
�T�-�
.�	��(��$��u�i��
�*��$��u�i��
rVc���tj|td�|_|j|_tj�|_i|_|jdd�s/tj|jd|||j��ytj|j�}|r|js"t!j"d|jz��y)Nr��non_primaryF)�finalizer��declarative_scan�init_methodztClass %s has no primary mapper configured.  Configure a primary mapper first before setting up a non primary Mapper.)r1�assert_arg_type�typer~rJr��OrderedDictr�r�r�r�register_class�constructorrr��	is_mappedrr�)rQr�r�r�r�s     rS�__init__z_MapperConfig.__init__Is����'�'��d�F�;���������*�*�,���!#����}�}�]�E�2��*�*�����!�!%�$�0�0�
�!�5�5�d�h�h�?�G��'�"3�"3��-�-�� $���)���#4rVc�h�tj|j�}|j||�|SrO)r�manager_of_classr~�install_member)rQr��valuer�s    rS�set_cls_attributez_MapperConfig.set_cls_attributees+��!�2�2�4�8�8�<�����x��/��rVc��t��rO)�NotImplementedError�rQr�s  rS�mapz_MapperConfig.mapjs��!�#�#rVc�&�|j|�yrO)r�r�s  rS�_early_mappingz_MapperConfig._early_mappingms������rVN)r�r>r��Type[_O]r�r=r��Optional[FromClause]r�r`rW�Optional[_MapperConfig])r�r>r�r�r�r`)r�rIr�rErWrE).�r�r`rWzMapper[Any]�r�r`rWrl)rJrXrY�	__slots__r[�classmethodr�r�r�r�r�rPrVrSr�r�s����I�
�N��N���5�4��������	�
$��!�
�
!����<�����!�	�8�
$�rVr�c�\��eZdZdZ								d�fd�Zejfdd�Zdd�Z�xZ	S)r�)�local_table�inheritsc�r��t�|�|||�|jd|�|_tj
5|j
dd�s5tj|j|j|j�|j|�|j|�ddd�y#1swYyxYw)NrMr�F)�superr�r�r�r�_CONFIGURE_MUTEXr�r�	add_classr�r~�_class_registry�_setup_inheritancer�)rQr�r�r�r��	__class__s     �rSr�z _ImperativeMapperConfig.__init__ts����	����4��3��1�1�+�u�E���
�
'�
'��=�=���6��%�%��N�N�D�H�H�h�.F�.F��
�#�#�I�.����	�*�(�
'�
'�s�A*B-�-B6c�j�t}|jd||j|jfi|���S)NrL)r(r�r~r��rQr��
mapper_clss   rSr�z_ImperativeMapperConfig.map�s6���
��%�%���t�x�x��!1�!1�?�Y�?�
�	
rVc��|j}|jdd�}|�{g}|jD]2}t|�}|��t	|�s�||vs�"|j|��4|rRt
|�dkDrtjd|�d|����|d}||_yt|t�r|j}||_y)Nr�rr�� has multiple mapped bases: r)
r~r�r�r�r��append�lenrr�r�r(r�r�)rQr�r~r��inherits_searchr��cs       rSr�z*_ImperativeMapperConfig._setup_inheritance�s����h�h���=�=��T�2����!�O�����6�u�=���9��,�Q�/�A�_�4L�#�*�*�1�-�
'����'�!�+��1�1���1���+�1�-��!��
���&�
)����H� ��
rV)r�r>r�r�r�r�r�r`r�r�)
rJrXrYr�r�r1�
EMPTY_DICTr�r��
__classcell__�r�s@rSr�r�qsF���+�I�+��+��+�$�	+�
!�+�*.2�_�_�
�!rVr�c�T�eZdZUded<ded<ded<ded<d	ed
<ded<d
ed<y)�_CollectedAnnotationr7�raw_annotationzOptional[Type[Mapped[Any]]]�mapped_containerzUnion[_AnnotationScanType, str]�extracted_mapped_annotation�bool�is_dataclassr�
attr_valuerI�originating_moduler��originating_classNrwrPrVrSr�r��s+��'�'�1�1�!@�@����O��� � rVr�c�`��eZdZUdZdZded<ded<ded<d	ed
<ded<ded
<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded <ded!<d"ed#<	ded$<											d;�fd%�Zd<d&�Z				d=d'�Zhd(�Z	e
jd)�Z				d>d*�Z
d<d+�Zd<d,�Ze				d?d-��Ze								d@d.��ZedAd/��Z												dBd0�Z								dCd1�Z										dDd2�Zd<d3�Zd<d4�ZdEdFd5�ZdGd6�ZdHd7�ZdHd8�ZdHd9�Zej>fdId:�Z �xZ!S)Jr�)r��clsdict_view�collected_attributes�collected_annotationsr��persist_selectable�declared_columns�column_ordering�
column_copies�
table_args�	tablename�mapper_args�mapper_args_fn�table_fnr��single�allow_dataclass_fields�dataclass_setup_arguments�is_dataclass_prior_to_mapping�allow_unmapped_annotationsFr>r�r=rzDict[str, _CollectedAnnotation]r�Dict[str, Any]rr�r�rzutil.OrderedSet[Column[Any]]rzDict[Column[Any], int]rzRDict[Union[MappedColumn[Any], Column[Any]], Union[MappedColumn[Any], Column[Any]]]rz
Optional[str]r	�Mapping[str, Any]r
rbrz&Optional[Callable[[], Dict[str, Any]]]r�Optional[Type[Any]]r�r�r
rrrdrrc�@��|rtj|�ntj|_t�	|�|||�||_d|_i|_i|_	tj�|_i|_i|_
d|_t|j dd�x|_}t|j dd�xst%|j"�|_t)j*|�x|_}t/|d�}|r|r|rt1j2d��t%|xr|�|_|j7�|j9�|j;�t<j>5tAjB|jD|j |jF�|jI|�|jK�|jM�|jO|�|jQ|�|jS|�ddd�y#1swYyxYw)NFre�__allow_unmapped__�__sa_dataclass_metadata_key__z�SQLAlchemy mapped dataclasses can't consume mapping information from dataclass.Field() objects if the immediate class is not already a dataclass.)*r1�
immutabledictr�rr�r�r�rrr�
OrderedSetrrrr
r�r~rr�r�dataclassesr�rr�rr�r�_setup_declared_events�_scan_attributes�_setup_dataclasses_transformsrr�rr�r�r��_setup_inheriting_mapper�_extract_mappable_attributes�_extract_declared_columns�_setup_table�_setup_inheriting_columnsr�)
rQr�r�r�r�r��dca�cld�sdkr�s
         �rSr�z_ClassScanMapperConfig.__init__�s����*/�D���u�%�D�O�O�	
��	����4��3� ��
�"&���$&��!�%'��"� $��� 1���!���������/6��H�H�/��0
�	
��&��+2��H�H�*�E�+
�+2�
�$�0�0�
1�	
�'�4?�3K�3K��4
�	
��*�S�&�d�,K�L���s���)�)�4��
�'+�3�;�3�&7��#��#�#�%������*�*�,�
�
'�
'��!�!�������(�*B�*B�
�
�)�)�)�4��-�-�/��*�*�,����e�$��*�*�9�5����	�*�(�
'�
'�s
�1BH�Hc����t�jd�r#tjtd�d�fd��}t�jd�r$tjtd�d�fd��}yy)Nrj�after_configuredc�N��td�j�j�y�N�_DeclMappedClassProtocol[Any])rr~rjrgs�rSr'zG_ClassScanMapperConfig._setup_declared_events.<locals>.after_configuredIs����3�T�X�X��"�"�$rVrh�before_configuredc�N��td�j�j�yr))rr~rhrgs�rSr+zH_ClassScanMapperConfig._setup_declared_events.<locals>.before_configuredQs����3�T�X�X��#�#�%rVrk)r�r~r0�listens_forr()rQr'r+s`  rSrz-_ClassScanMapperConfig._setup_declared_eventsFsi���"�4�8�8�-?�@�
�
�
�v�'9�
:�
%�;�
%�
#�4�8�8�-@�A�
�
�
�v�':�
;�
&�<�
&�BrVc������|jr
t�d�}nd}|sd�fd�}|Stj��D�cic]*}||jvr|j
|j|��,c}�tj��D�cic]*}||jvr|j
|j|��,c}�t��d����fd�}|Scc}wcc}w)z�Produce a function that checks if a class has overridden an
        attribute, taking SQLAlchemy-enabled dataclass fields into account.

        rNc�"��t�||�|uSrO)r�)�keyr�r~s  �rS�attribute_is_overriddenzR_ClassScanMapperConfig._cls_attr_override_checker.<locals>.attribute_is_overriddenhs����s�C��-�S�8�8rVc� ��t|�r|j}�j|��}t|�r|j}||ury|�ury�j|��}t�||�}||ury|�urt	|t
�ry||ury|�uryy)NFT)r��fgetr�r�r�r)r0r��ret�	all_field�absent�all_datacls_fieldsr~�local_datacls_fieldss    ����rSr1zR_ClassScanMapperConfig._cls_attr_override_checker.<locals>.attribute_is_overriddenys����(��-��(�(�C�+�.�.�s�F�;��(��-��(�(�C��#�:� ���&��.�2�2�3��?�	��c�3��,���#�:� �
�f�$���.�*� ���#� ��f�,��rV)r0rIr�rrWr�)rr�r1�dataclass_fieldsr^r��local_dataclass_fieldsr�)rQr~�sa_dataclass_metadata_keyr1�fr6r7r8s `   @@@rS�_cls_attr_override_checkerz1_ClassScanMapperConfig._cls_attr_override_checkerWs�����&�&�(?��4�)�%�)-�%�(�
9�r'�&�g�.�.�s�3�"�3�A�,��
�
�:�����
�
�#<�=�=�3�"���4�4�S�9�$�9�A�,��
�
�:�����
�
�#<�=�=�9�$� ��X�F�&
�&
�P'�&��k"��
$s�/C�
/C>rMr_rcraz^(?:_sa_|__)c����	�
���tj|��t|��|j}|j}tj
t
��t
���D�cgc]}|j|�r||vr|��c}�|jr
t|d��nd��s		d���fd�}|Stj|�D�cic]}|j|��c}�	��
		d���	�
��fd�}|Scc}wcc}w)z�produce a function to iterate the "attributes" of a class
        which we want to consider for mapping, adjusting for SQLAlchemy fields
        embedded in dataclass fields.

        rNc�����fd��D�S)Nc3�f�K�|](}|�j|��j|�df���*y�w)FN�r�)�.0r��cls_annotations�cls_varss  ��rS�	<genexpr>z`_ClassScanMapperConfig._cls_attr_resolver.<locals>.local_attributes_for_class.<locals>.<genexpr>�s?������!&��� ���T�*�'�+�+�D�1��	�!&�s�.1rP)rCrD�namess���rS�local_attributes_for_classzM_ClassScanMapperConfig._cls_attr_resolver.<locals>.local_attributes_for_class�s����!&��rVc3�,�K��D]�}�j|d�}|rN�|jvr@|jt|j���j|j�df���e|�j|��j|�df����y�w)NTF)r�r^r��_as_dc_declaredattr)r��fieldrCrDr9�fixed_sa_dataclass_metadata_keyrFr;s  ������rSrGzM_ClassScanMapperConfig._cls_attr_resolver.<locals>.local_attributes_for_class�s������"�D�,�0�0��t�<�E��!:�e�n�n�!L�#�j�j�*=�!�N�N�,K�+�*�.�.�u�z�z�:�D�A�A�#�H�L�L��$6��8K�8K� �9� �!�!�"�s�BB)rWz$Iterable[Tuple[str, Any, Any, bool]])r1�get_annotations�vars�_include_dunders�_match_exclude_dunders�merge_lists_w_ordering�list�matchrr�r:r�)
rQr~rNrO�nrGrJrCrDr9rKrFr;s
       @@@@@@rS�_cls_attr_resolverz)_ClassScanMapperConfig._cls_attr_resolver�s&����.�.�s�3����9���0�0��!%�!<�!<���0�0��X���_� 5��
���*�/�/��2�a�;K�6K�	
��
���&�&�7N��4�8�%�)-�%�(�
�4�
�D*�)�'04�/J�/J�3�/O� �/O�e��
�
�E�!�/O� ��/H�+�
!�4�
!�
!�*�)��g
��> s�)C2�
C7c
�d	��|j}td|��|j}|j}|j}|j
}d}dx}}d}	d}
d|v}|j
|j�}g}
|jD]V}||uxrt|�}|j|�}|s||ur|j||||�}ni}|
j||||f��X|
D�]�\}}}}|j|�|�D�]�\}}}}||vr�|dk(rt|||�}|r�"|r|s�'d�fd�}|}�0|dk(r"t|||�}|
r�E|r|s�J�j}
�W|dk(rt|||�}|s�l|	r�od�fd�}|}	�x|dk(r^t|||�}|r��|r|s���j}t!|t"t$t'd�f�st)j*d��||us��d	}��J�|rEt-|�r8|j.s,t1j2d|j4�d|�d
|�d|�d�	���$||u�r�t!|t6t8f�r��At!|t:�rt)j<d��t-|��r9|�J�|j>rJ||vrt1j2d|�d|�d��|jA||�x||<x||<}tC|||�n�|r.tE||d�}t!|tF�s|jI�}ntE||�}t!|tF�r1tK|�r&t!|jLt:�s|jN}|x||<||<t!|t6t:f�r|jP�|jR|_(|jU||jW�|d	|����tY|||�r|s||vs||d�sJ����|j[|||����|rM||vs|||urB|||�rJ�t-|�r|jI�}|||<|jU|||d
|���/|jU|||d|�}|duxr|j\du}|�|j^n|}|�|s|r|�|n	t9�||<���||vs���|||<������|r|
sd}||_0|
|_1||_2|	|_3y)Nr*rMrac�.��t�j�SrO)�dictra��cls_as_Decls�rS�_mapper_args_fnz@_ClassScanMapperConfig._scan_attributes.<locals>._mapper_args_fnAs���'+�K�,G�,G�'H� HrVr_c����jSrO)rMrXs�rS�	_table_fnz:_ClassScanMapperConfig._scan_attributes.<locals>._table_fnWs���'2�'<�'<� <rVrcz3__table_args__ value must be a tuple, dict, or NoneTFz*Regular (i.e. not __special__) attribute '�.z(' uses @declared_attr, but owning class z& is mapped - not applying to subclass z�Mapper properties (i.e. deferred,column_property(), relationship(), etc.) must be declared as @declared_attr callables on declarative mixin classes.  For dataclass field() objects, use a lambda:�Attribute '�' on class z> cannot be processed due to @declared_attr.cascading; skipping)rWr)rWrD)4r~rrrrrNr=r�r�rT�_produce_column_copiesr��updater�r_rcr��tuplerWr�r�
ArgumentErrorr��_quietr1r�rJr4r*r'r�r��__get__�setattrr�rr3r�original_property�
descriptor�docrZ�_collect_annotation�_collect_return_annotationr,�_warn_for_decl_attributesr�r�rr	rr)rQr~rrrrNrr�inherited_table_argsrr	�fixed_tabler1�basesr��class_mappedrG�locally_collected_columnsr�r��
annotation�is_dataclass_field�
check_declrZr\r4�collected_annotationr��
generated_objrYs                             @rSrz'_ClassScanMapperConfig._scan_attributes�s~����h�h���:�C�@���(�(��#�8�8���*�*�
��0�0����,0�0�
�)����	�!�\�1��"&�"A�"A�$�(�(�"K�����K�K�D� �s�?�N�/H��/N�L�)-�)@�)@��)F�&��D��O�,0�,G�,G�.�+���	-�)�-/�)��L�L�� �.�-�	�
�+ �F�
���&�%�
!�'�'�(A�B�,�-�����"��+�+��0�0�%D���s�&�
� .� ,�
�I�.=�N���0�%D���s�&�
� )�,�*�(3�(A�(A�I���,�%D���s�&�
�&�h�=�(1�H��!1�1�%D���s�&�
� *�<�:�)4�)C�)C�J�#-� *�U�D�$�t�*�,E�$�'*�&7�&7�%4�'"�!"� $�3��7;� 4�
%�u�!�,�S�1�#�*�*��	�	�
 $�}�}�d�D�#�	?�����_�"�#���'=�>� �#�C��8�!�5�5�=���/�s�3� #��.���>�>�#�|�3�!%�	�	�37��%=�!"�!$���C�� 5�6�0��6�6��s�9K� #�#�C��s�3�1�
'.�c�4��&>��
(2�#�~�'F�*-�(�(�*�C�'.�c�4�&8��!+�3�� ?�$:�3�$?�(2�$'�$9�$9�>�)"�'*�n�n��!$��0��6��s�9K�
'�s�V�^�,D�E� #����&)�k�k�C�G��0�0� ��:�:�<� � ���/�z�3��E� +� $�(<� <�#:�4��#F��!G�!��6�6�t�T�3�G�'���,��T�0B�#�0M� 7�t�S�A�A�A�,�S�1�!�h�h�j��14�(��.��,�,��j�$��s��,0�+C�+C��j�$��c�,�(�-�D�8�N�0�A�A��M��0�;�-�7�7� �"�
�{�;�9� -�8�*�!-��-�T�2�
��-�58�,�T�2�}.��` �	��J�$���"���,��� ��
rVc�r�����j}|syd�jjvr#tjd�j�d���d�jjvr#tjd�j�d���tjt��						d��fd��tj�j�}|�J���fd��jj�D�D���cgc]F\}}}tj|||�jj|t j"����H}}}}�rZ�j�D]G\}}t%j&d�j�d	d
j)d�|D���d|�d
�dd���Ii}	i}
|D]7}t+|�dk(r|\}}
nt+|�dk(r|\}}
}||
|<nJ�|
|	|<�9|
j�D]\}}t-�j||���j/|�j|	�ycc}}}w)N�__dataclass_fields__r�z� is already a dataclass; ensure that base classes / decorator styles of establishing dataclasses are not being mixed. This can happen if a class that inherits from 'MappedAsDataclass', even indirectly, is been mapped with '@registry.mapped_as_dataclass'rMzk already defines a '__table__'. ORM Annotated Dataclasses do not support a pre-existing '__table__' elementc�f��|�jur"d|jvr�|j|�y)NrxT)r~r�r�)r0r�rQ�warn_for_non_dc_attrss  ��rS�_allow_dataclass_fieldzT_ClassScanMapperConfig._setup_dataclasses_transforms.<locals>._allow_dataclass_field:s7���"����1�*�2C�2L�2L�L�%�&7�8�?�?��D�rVc3��K�|]L\}\}}}}}}}�	||�r6|�
jvst�
j|t�s||r|n||f���Ny�wrO)rr�r)rBr0�raw_annor��mapped_anno�is_dcr�r�r�r{rQs         ��rSrEzG_ClassScanMapperConfig._setup_dataclasses_transforms.<locals>.<genexpr>Os�����0�8��C���$����&�%�)�#�/@�A��t�8�8�8�&��1�1�#�6�8J��/�#.�K�H�$��8�s�AAzWhen transforming z to a dataclass, attribute(s) �, c3�2K�|]}t|����y�wrO�rp)rBr0s  rSrEzG_ClassScanMapperConfig._setup_dataclasses_transforms.<locals>.<genexpr>ws���� C�l�s��c��l���z originates from superclass a, which is not a dataclass.  This usage is deprecated and will raise an error in SQLAlchemy 2.1.  When declaring SQLAlchemy Declarative Dataclasses, ensure that all mixin classes and other superclasses which include attributes are also a subclass of MappedAsDataclass.z2.0�dcmx��coder/�)r0rIr�r�rWr�)rr~r�rr��collections�defaultdictrQrr�r�itemsr"�!_get_arguments_for_make_dataclassrr�r3�NO_ARGr1�warn_deprecated�joinr�rf�_apply_dataclasses_to_any_class)rQrr�r0�annor��
field_listr��non_dc_attrsr�defaults�itemr��tp�spec�k�vr{rzs`                @@rSrz4_ClassScanMapperConfig._setup_dataclasses_transformssi���$(�$B�$B�!�(��"�T�X�X�%6�%6�6��)�)�����
�#2�2��
��$�(�(�+�+�+��)�)�����
�#&�&��
�!,� 7� 7�� =��		��		�)2�		�
�		�"�2�2�4�8�8�<���"�"�"�0��/�/�5�5�7�0�%
�0�+��T�+�

�?�?��� ��)�)�-�-�c�6�=�=�A�	
�0�	�%
�N!�'�,�,�.��!���$�$�(����
�3$��y�y� C�l� C�C�D�E2�(�)�*5�		6���
�/� �����D��4�y�A�~����b��T��a��!%���b�$�!%�����u� "�K�����N�N�$�D�A�q��D�H�H�a��#�%�	
�,�,�%�t�x�x��	
��U%
s�:AH2c���tj|�}i}|j�D]K\}}t|||�r4t	|||j
|t
d�ddd��}|s�<|\}}|||<�G|||<�M|S)NF��requiredrs�
expect_mapped)r1rLr�r,r+rXr�)	r~�klassrC�new_annor�rr�	extracted�inner�_s	         rS�(_update_annotations_for_non_mapped_classz?_ClassScanMapperConfig._update_annotations_for_non_mapped_class�s����.�.�u�5���� /� 5� 5� 7��D�*�$�Z���>�3����$�$����J�"�',�"'�	�	��(�H�E�1�%*�H�T�N�!+����!!8�"�rVc
��|j|�|d}|tjurtj}|rt|dd�}t
d|�|_nd}	||fi|j�D��cic]\}}|tjur|dk7r||��!c}}��	|r
|�|`y||_yycc}}w#ttf$r.}tjd|j�d|�d�d��|�d}~wwxYw#|r
|�|`w||_wwxYw)	Nrvr[rzAPython dataclasses error encountered when creating dataclass for z: zN. Please refer to Python dataclasses documentation for additional information.�dcter�)�_assert_dc_argumentsr3r�r�	dataclassr�rr[r��	TypeError�
ValueErrorrr�rJ)	r~rr��use_annotationsrv�restoredr�r��exs	         rSr�z6_ClassScanMapperConfig._apply_dataclasses_to_any_class�sO��	� � �!:�;�6�7K�L������.�!,�!6�!6���
�u�&7��>�H�$(�)9�?�$K�E�!��H�	5���
�!:� ?� ?� A�� A���1���
�
�-�!�7K�2K��q�D� A��
�*��#��-�,4�E�)�	��'���:�&�	��)�)�!�!&��� 2�"��&�<�<����

��	����#��-�,4�E�)�	�s6�B6�5$B0�B6�0B6�6C3�)C.�.C3�3C6�6Dc��hd�}t|�j|�}|r:djd�t|�D��}t	j
d|�d���y)N>rqrorprrrurtrsrvr�c3�"K�|]}|����	y�wrOrP)rB�args  rSrEz>_ClassScanMapperConfig._assert_dc_arguments.<locals>.<genexpr>�s����J�2I�3�s�g�J�2I�s�
zDataclass argument(s) z are not accepted)�set�
differencer��sortedrrc)r~�	arguments�allowed�disallowed_args�msgs     rSr�z+_ClassScanMapperConfig._assert_dc_arguments�s`��	
���i�.�3�3�G�<����)�)�J�&��2I�J�J�C��#�#�(���->�?��
�rVc��||jvr|j|S|�y|j}|j}|�;t|tj
�}|xr|xr|duxst|t�}nd}d}t||j|j|t|�d||xr|��}	|	�y|	\}
}|�mt|
�sbt|
�D]T}t|dd��r#t|j||jd��}t|t�s�E|j!�}�Vt#|||
|||j|�x|j|<}
|
S)NFr�T)�
check_generic�check_for_plain_string)�include_generic)rrrr�r�Fieldr%r+r~rXr�r:r8r9r.r$�found_in_pep593_annotatedr�)rQr�r�r�r�r�r��allow_unmappedrsr�r�r��elem�cas              rSrjz*_ClassScanMapperConfig._collect_annotation�s����4�-�-�-��-�-�d�3�3��!���9�9���8�8��� �!+�J��8I�8I�!J��&�&��&�&���$�&�@�!�*�.>�?�
�"'��"��+���H�H��(�(������1�'�<��,<�	
�	����8A�5�#�%5���j�1L�&M� �!<�=�����T��3�����)�4�4�(,�	�D��d�$;�<�!%�!?�!?�!A�J�>�1E���'����(�(��1
�	
��"�"�4�(�2��	rVc�r�t|tj�rtjd|�d|�d��yy)Nr^r_z� appears to be a non-schema SQLAlchemy expression object; this won't be part of the declarative mapping. To map arbitrary expressions, use ``column_property()`` or a similar function such as ``deferred()``, ``query_expression()`` etc. )r�r2�
ColumnElementr1r�)rQr~r0r�s    rSrlz0_ClassScanMapperConfig._warn_for_decl_attributesBs<���a��1�1�2��I�I��c�U�+�c�U�3/�/�
�3rVc��|j}|j}i}|j}|�D�]S\}	}
}}|s]|
�[t|||�rN||	|
�r�$|j	|	||d|
�}
|
�|
j
n|
}
|
�
t
�}
|
||	<t||	|
��ht|
ttf�s�||	|
�r��|j	|	||d|
�}
|
�|
j
n|
}
|	|vs��d|vr!t|
dd�xs|	|djvr��|
jrI|
jD]:}|j��|jj��'tj d��|
j#�x||
<}|||	<t||	|���V|S)NTrMr�z�Columns with foreign keys to non-table-bound columns must be declared as @declared_attr callables on declarative mixin classes.  For dataclass field() objects, use a lambda:.)r~rrr,rjr�r*rfr�r4r�r��foreign_keys�
_table_columnr�rr��_copy)rQ�attributes_for_classr1rnr�r~r��locally_collected_attributesrr�r�rrr�ru�fk�copy_s                rSr`z-_ClassScanMapperConfig._produce_column_copiesOs����h�h���!�!��')�$��*�*�
�4H�3I�/�D�#�z�<���K�)�*�c�;L�M�+�4��5��'+�'?�'?��*�&7��s�(�$�
,�7�)�3�3���
�;�&�.�C�58�,�T�2���T�3�'��C�&�,�!7�8�*�4��5�
�'+�'?�'?��*�&7��s�(�$�
,�7�)�3�3����u�$��5�(� ��f�d�3�;�t��[�)�+�+�,��'�'�"%�"2�"2�B� "� 0� 0� <�$&�$4�$4�$:�$:�$B�&)�&=�&=�%F�'"�!"�#3�25����<�M�#�&��9>�0��6��C��u�-�O4J�R,�+rVc�V�|j}|j}|j}|j}t	|dd��}|j
}|xs|j}t|j�}t|�D�]�}	|	|vr�	||	}
t|
�r;|
jr"tjd|jz�t||	�}
nOt|
t �r?|
j"|ur1|
j$|	k7r"t'|
j$�}
t)||	|
�t|
t*�r@t-|
�dk(r2t|
dt.t0f�rtjd|	z���|rt|
t2j4�r��t|
t.t6f�s5|j9|	�|j;||	|
�|s
t)||	|
���\|	dvrt=j>d	|	�d
���t|
t.�r(tA|	|jBjE|
|
���nFt|
tF�rS|jHjE|	d�\}}}
}}}}|�|�|r%	|
jK||jL|||	|||
|�	n|sJ�t|
t6�r�|
jRr�|s�t|
tT�rgd�}ngd�}|D�chc]-}t|
jVd|���tXjZur|��/}}t=jPd|	�d|�ddj]t_d�|D����d���t|
tTt`f�s |j9|	�t)||	|
����|
||	<���y#tN$r}t=jPd|�d
��|�d}~wwxYwcc}w)Nr�Tr�z�Use of @declared_attr.cascading only applies to Declarative 'mixin' and 'abstract' classes.  Currently, this flag is ignored on mapped class %srrz�Ignoring declarative-like tuple value of attribute '%s': possibly a copy-and-paste error with a comma accidentally placed at the end of the line?)r^zAttribute name 'z-' is reserved when using the Declarative API.)NNNFNNNz7Could not resolve all types within mapped annotation: "zU".  Ensure all types are written correctly and are imported within the module in use.)ro�default_factoryrp�default)ror�rp�dataclasses_r^r_z# includes dataclasses argument(s): r�c3�2K�|]}t|����y�wrOr�)rB�as  rSrEzF_ClassScanMapperConfig._extract_mappable_attributes.<locals>.<genexpr>Ts����/F��A��Q���r�zF but class does not specify SQLAlchemy native dataclass configuration.)1r~rr�rNr�rrr�rrQr�r�r1r�r�r�rr�r0r!rfrbr�r4r%rr�r#�poprlrr��_undefer_column_namerr�r$rr�r��	NameErrorrc�_has_dataclass_argumentsr'�_attribute_optionsr3r�r�r�r&)rQr~r�	our_stuffrN�late_mappedr�expect_annotations_wo_mapped�look_for_dataclass_thingsr�r�rrr�r�r�r�r�r��ne�argnamesr��argss                      rSrz3_ClassScanMapperConfig._extract_mappable_attributes�s����h�h��#�8�8���O�O�	��0�0��-��-�d�
��&*�%D�%D�"�&�L�$�*L�*L�	%�%)��)G�)G�$H�!��*�+�A��$�$��(��+�E�$�U�+��#�#��I�I�� $�x�x�(�� ��Q����5�"4�5��L�L��+��I�I��N�(��	�	�2����Q��&��5�%�(���J�!�O��u�Q�x�&�2B�)C�D��	�	�B�DE�F��
�*�z��{�(�(�0�
����0C�'D�E�
%�(�(��+��.�.�s�A�u�=�"��C��E�*���m�#��-�-�&�q�c�*'�'����E�6�*�$��t�)�)�-�-�e�U�;���e�%<�=��2�2�6�6��F���"�(�3�$�"�*�)�)�4�%�-�
6�&�!�2�2� $� $�
�
� #� 2� !� 0� *� ;� ,�
�. <�;�;��e�%8�9��6�6� 9�%�e�^�<�(�H�(K�H�&.� �%-��&� %� 8� 8�L���:L� �$*�=�=� 1��%-�� �"�/�/�)�!��K��u�=8�#�y�y��/F��/F�)F�G�H�II�I���&�e�n�l�-K�L�-�0�0��3� ��Q��.� � �I�a�L�a,��^ )�&�"%�"3�"3�#0�0:�|�<E�!F�#�
$&�&��&��: s�'#M;�
2N&�;	N#�N�N#c
��|j}|j}|j}tjt
�}t
|j��D]�\}}t|t�r�|j}|r|||<n||=|jD]a\}}	t|t�s||jj|�|j|�|	||<|��M||jk7s�]|||<�c��t|t �s��|j�J�||jj|�|j|�||jk(s��||=��|j�D]U\}
}t#|�dkDs�t%j&d|j(�d|
�ddj+t-|���d���Wy)Nrz	On class z, Column object z7 named directly multiple times, only one will be used: r�z$. Consider using orm.synonym instead)r�rrr�r�r�rQr�r�r&�mapper_property_to_assign�columns_to_assignr r��addr0r4r�r1r�r�r�r�)rQr�rr�name_to_prop_keyr0r��mp_to_assign�col�
sort_orderr��keyss            rSr z0_ClassScanMapperConfig._extract_declared_columnsns����O�O�	� �0�0���.�.��&�2�2�3�7���9�?�?�,�-�F�C���!�\�*� �:�:���%1�I�c�N�"�#��'(�':�':�O�C��%�a�):�;�(����2�6�6�s�;�$�(�(��-�,6�O�C�(�$�+��s�w�w��),�	�#��!(;�"�A�v�&��v�v�)�)�)� ����(�,�,�S�1� �$�$�Q�'��!�%�%�<�!�#��O.�R+�0�0�2�J�D�$��4�y�1�}��	�	�
�~�~�t�d�i�i��t��.E�	H��3rVc	�$��|j}td|�}|j}|j}|j}|j
}|j�tj|�}|j��d|v�r|��	t|d�r5ttttj|j��}	nt}	|��@d}
i}|rCt!|t"�r|}n0t!|t$�r t!|dt"�r|dd|d}}
n|}
|j'd�}|r||d<|j'd	�}
|
rd
|d<t)|�fd��
�}|j+d|	||j-|�g|�|
��i|���}||_y|�9|jr!|j+d|j��}n|j.}|rD|D]?}|j0j3|�r�t5j6d|j8z��||_y)N�MappedClassProtocol[Any]rM�
__table_cls__rP���r�__autoload_with__�
autoload_with�__autoload__T�autoloadc�(���j|d�S)NrrA)r�rs �rS�<lambda>z5_ClassScanMapperConfig._setup_table.<locals>.<lambda>�s���/�"5�"5�a��";rV)r0z8Can't add additional column %r when specifying __table__)r~rr	rrrrrr�rr�rr5r1�unbound_method_to_callabler�r�rWrbr�r�r��_metadata_for_clsrMr��contains_columnrrcr0r�)rQr�r~rYr	rrrr��	table_clsr��table_kwr�r��sorted_columnsr�rs                @rSr!z#_ClassScanMapperConfig._setup_table�s#����h�h���5�s�;���N�N�	��_�_�
��(�(���0�0���.�.���-�-�c�2��
�M�M�!��<�/��
��s�O�,� ���K��3�3�C�4E�4E�F��	�
"�	��$�(*��+-���!�*�d�3�#-��#�J��6�%�j��n�d�;�-7��"�-=�z�"�~�(�D�#-�D� ,� 0� 0�1D� E�
� �0=�H�_�-�'�+�+�N�;���+/�H�Z�(�!'�$�;�"���.�.���!��.�.�w�7��(���	�
#��	��4!����}��=�=� �2�2�#�T�]�]�_��E�(�1�1�E��)�A� �7�7�2�2�1�5�!�/�/�3�56�U�U�;���*�!��rVc�d�t|jdd�}|�|S|jjS)Nr^)r�r~r�r^)rQr��metas   rSr�z(_ClassScanMapperConfig._metadata_for_cls�s1��#*�4�8�8�Z��#F�����K��#�#�,�,�,rVc��|j}|jdd�}|�tg}|jD]2}t|�}|��t	|�s�||vs�"|j|��4|rKt
|�dkDrtjd|�d|����|d}nt|t�r|j}||_|j}d|vr|j�d|_yyy)Nr�rr�r�rrMT)r~r�r�r�r�r�r�rr�r�r(r�r�rr	r
)rQr�r~r�r�r�r�rs        rSrz/_ClassScanMapperConfig._setup_inheriting_mapper�s����h�h���=�=��T�2����!�O�����6�u�=���9��,�Q�/�A�_�4L�#�*�*�1�-�
'����'�!�+��1�1���1���+�1�-��
��&�
)����H� ��
��(�(���l�*�t�~�~�/E��D�K�0F�*rVc
���|j}|j}|j}|j}|�0|j�$t|d�st
jd|z��|j�rqt|j�}|�J�|j}|j}|��<|rt
jd��|r@t|t�s0t
jd|j�d|j�d���|D]�}	|�J�|	j|jvr\|j|	j|	ur�;t
jd|	�d|j�d	|j|	j�d
���|	j rt
jd��t"rt|t�sJ�|j%|	�|���||us��|j'|	���yyy)N�__no_table__zwClass %r does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.z?Can't place __table_args__ on an inherited class with no table.z9Can't declare columns on single-table-inherited subclass z
; superclass z is not mapped to a TablezColumn 'r_z! conflicts with existing column 'zs'.  If using Declarative, consider using the use_existing_column parameter of mapped_column() to resolve conflicts.zDCan't place primary key columns on an inherited class with no table.)r�r~rrr�r�rr�rrrcr�r5r�r�rJ�primary_keyr�
append_column�_refresh_for_new_column)
rQr�r�r~rr�inherited_mapper_or_config�inherited_table�inherited_persist_selectabler�s
          rSr"z0_ClassScanMapperConfig._setup_inheriting_columnss��� � ���h�h���_�_�
��0�0��
�M��
�
�%�+�C��@��)�)�&�(+�,��
�
�]�]�)?��
�
�)N�&�-�9�9�9�8�D�D�O�*�=�=�
)��}���+�+�)���$�J���,N��+�+�$�$(�H�H�:�]�4�=�=�/�J3�3���,�C�*�6�6�6��x�x�?�#4�#4�4�*�,�,�S�X�X�6�#�=�$�!�/�/�&�s�e�;�s�|�|�n�E � /� 1� 1�#�(�(� ;�<�=4�4������!�/�/�3���
%�)�/�5�A�A�A�#�1�1�#�6�4�@�8��O�4�L�L���7,�#�rVc�r�|j}|jr|j�}ni}|r|j|�d|vrt|�}|j|d�dD]+}||vs�||}|jj||�||<�-d|vrCt
j|d�D�cgc]}|jj||��� c}|d<d|vrJ|d}t|t�r|j}||jurtjd|dz��|jr|j|d<|j�r>|jdd��s+t|jd�}|j}d|vr�|j D�	chc]}	|	|j"vr|	j$��c}	j'|j(xsd	�x|d<}
|
j+|j,D�	cgc]}	|	j$��c}	�t/|j1��D]b\}}t|t2j4�s�!||j6vs�0|j6|}t|t8�s�P|g|j:z||<�d|j=�}
||
d<|
|_ycc}wcc}	wcc}	w)
Nr�)�version_id_col�polymorphic_onr�r�z:mapper inherits argument given for non-inheriting class %s�concreteF�exclude_propertiesrP) r�rrarWrr�r1�to_listr�r(r�r�rr�r-r�r��_columntopropertyr0�unionr�difference_updaterrQr�r2r��_propsr)�columns�copyr
)rQr�r�r
r�r��inherits_arg�inherited_mapperr�r�rr��p�result_mapper_argss              rS�_prepare_mapper_argumentsz0_ClassScanMapperConfig._prepare_mapper_argumentsgs����_�_�
�����-�-�/�K��K�����y�)��;�&��j�)�J����k�,�7�8�6�A��K����N��!%�!3�!3�!7�!7��1�!=��A��6�
�K�'����k�-�&@�A�*�A�A��"�"�&�&�q�!�,�A�*�K�
�&�
��$�&�z�2�L��,��/�+�2�2���4�=�=�0��-�-��"-�j�"9�;���
�=�=�&*�m�m�K�
�#��=�=�����U�!C� ,�D�M�M�5�A��.�:�:�O�$�;�6�-�.�.�J�.��� 0� B� B�B��E�E�.�J��%�(�;�;�A�r�B�	C��0�1�4F�
#�4�4�$(�$9�$9�:�$9�q�Q�U�U�$9�:���z�/�/�1�2���3�!�#�z�'?�'?�@���(�/�/�/�(�/�/��2�A�!�!�^�4�*-���	�	�(9�
�1�
�3�)�-�-�/��+5��<�(�-����q*��<J��;s�0#J*�!J/�5J4c�4�|j|�t|jd�r4tdt	j
|jj��}nt}|jd||j|jfi|j���S)N�__mapper_cls__zType[Mapper[Any]]rL)rr�r~rr1r�rr(r�r�r
r�s   rSr�z_ClassScanMapperConfig.map�s����&�&�y�1��4�8�8�-�.��#��/�/��H�H�+�+���J� �J��%�%���t�x�x��!1�!1�F�T�5E�5E�F�
�	
rV)
r�r>r�r�r�r=r�r�r�r`rk)r~r�rW�Callable[[str, Any], bool])r~r�rW�2Callable[[], Iterable[Tuple[str, Any, Any, bool]]])r�r�rW�!Mapping[str, _AnnotationScanType])rrnr�r�r�rrWrl)r�rnrWrl)r�rIr�r7r�r�r�zOptional[bool]r�rrWzOptional[_CollectedAnnotation])r~r�r0rIr�rrWrl)
r�rr1rrnr�r�r�rWz0Dict[str, Union[Column[Any], MappedColumn[Any]]]rO)r�r�rWrl)r�zClassManager[Any]rWrCr�r�)"rJrXrYr��is_deferredr[r�rr=rN�re�compilerOrTrrr�r�r�r�rjrlr`rr r!r�rr"rr1r�r�r�r�s@rSr�r��s�����I�.�K�����:�:�(�(�%�%�,�,�2�2�+�+�����"�"�(�(�:�:�!�!��L�#'�'� $�$�<�<��!� ��K+��K+��K+��	K+�
$�K+�!�
K+�Z&�"J'��J'�	#�J'�X��(�R�Z�Z��8��B*��B*�	;�B*�Hl!�\	v
�p����	*����2�25�#6�25��25�;�	25�

�25��25�h����$H��H�,�H�%�	H�
&�H��
H�
(�H�T���#&��+.��	
��X,�
�X,�
"<�X,��
X,�%�X,�
:�X,�tC!�J9�vL!�\-��BF�PO.�b.2�_�_�
�
rVr�c��tjj}||}t|�r't	||j
�s|j|�S|SrO)r1r�r��callabler�r@)�field_metadatar;�decl_apir�s    rSrIrI�sJ���~�~�*�*�H�
�2�
3�C���}�Z��X�-C�-C�D��%�%�c�*�*��
rVc���eZdZUded<dZej�Zded<dd�Ze	dd��Z
e
jdd��Z
edd	��Z
edd
��Zedd��Zedd��Ze	d					dd
��Zej$fd�fd�
Z�xZS)rz�weakref.ref[Type[Any]]�_clsTz?util.OrderedDict[weakref.ref[Type[Any]], _DeferredMapperConfig]�_configsc��yrOrPr�s  rSr�z$_DeferredMapperConfig._early_mapping�s��rVc�"�|j�SrO)rrgs rSr~z_DeferredMapperConfig.cls�s���y�y�{�rVc��tj||j�|_||j|j<yrO)�weakref�ref�_remove_config_clsrr)rQr�s  rSr~z_DeferredMapperConfig.cls�s,���K�K���(?�(?�@��	�#'��
�
�d�i�i� rVc�<�|jj|d�yrO)rr�)r~r$s  rSr%z(_DeferredMapperConfig._remove_config_cls�s��������d�#rVc�h�t|t�xr!tj|�|jvSrO)r�r�r#r$r�r~r�s  rSr{z_DeferredMapperConfig.has_cls�s(���&�$�'�O�G�K�K��,?�3�<�<�,O�OrVc��t|d�r|j�tj|dtj|��d����)N�_sa_raise_deferred_configr�zG has a deferred mapping on it.  It is not yet usable as a mapped class.)r�)r�r*�orm_exc�UnmappedClassError�_safe_cls_namer(s  rS�raise_unmapped_for_clsz,_DeferredMapperConfig.raise_unmapped_for_cls�sN���6�6�7��,�,�.��(�(����/�/��7�8�9J�J�
�	
rVc�F�|jtj|�SrO)rr#r$r(s  rSr|z$_DeferredMapperConfig.config_for_clss���|�|�G�K�K��/�0�0rVc����|jj�D�cgc]}||jf��c}D��cgc]\}}|�t||�r|��}}}|s|S|D�cic]}|j|��c}�g}�D]'�|j	��fd��j
D���)t
tj||��Scc}wcc}}wcc}w)Nc3�:�K�|]}|�vr�|��f���y�wrOrP)rB�base_cls�all_m_by_cls�m_clss  ��rSrEz9_DeferredMapperConfig.classes_for_base.<locals>.<genexpr>s0������ /�H��|�+��h�'��e�)<�=� /�s�)	r�valuesr~r��extendr�rQr6�sort)	r~r2r7�mr��classes_for_base�tuplesr3r4s	       @@rSr9z&_DeferredMapperConfig.classes_for_base	s����14���0C�0C�0E�F�0E�1�Q����J�0E�F�
�F���4���J�t�X�$>�
�F�	�
��#�#�*:�;�*:�Q����q��*:�;��LN��!�E��M�M�� %����
�"��K�$�$�V�-=�>�?�?��!G��
��<s�C�C�Cc�n��|jj|jd�t�|�|�SrO)rr�rr�r�)rQr�r�s  �rSr�z_DeferredMapperConfig.map!s*����
�
���$�)�)�T�*��w�{�9�%�%rVr�)rWr�)r�r�rWrl)r$rrWrl)r�r�rWr�)r�r�rWr)r�r�rWrz)T)r2r�r7r�rWzList[_DeferredMapperConfig]r�)rJrXrYr[rr1r�rr��propertyr~�setterr�r%r{r.r|r9r�r�r�r�s@rSrzrz�s����
 � ��K�	�����
���
�����	�Z�Z�(��(��$��$��P��P��

��

��1��1��/3�@� �@�(,�@�	$�@��@�..2�_�_�&�&rVrzc��d|jv�r�td|�}dd�}t|t�rBt	||�||�j|d��|jj||�yt|t�r�|j}|jD]I\}}t	||�||�j|d��|r�.|jj||��K|r�|jj||�yt|t�r|jj||�yt|t�rA|j|k7r2t|j�}|jj||�ytj!|||�|jj#�yytj!|||�y)z�add an attribute to an existing declarative class.

    This runs through the logic to determine MapperProperty,
    adds it to the Mapper, adds a column to the mapped Table, etc.

    rLr�c��t|jt�r|jStjd|j
�d���)Nz+Cannot add a new attribute to mapped class z) because it's not mapped against a table.)r�rMr5rr�rJ)�mcs rS�_table_or_raisez'_add_attribute.<locals>._table_or_raise3sC���"�,�,��.��|�|�#��)�)�=�b�k�k�_�M;�;��
rVT)�replace_existingN)r@r�rWr5)r�rr�r4r�r�rL�add_propertyr&r�r�r'rr0r!r��__setattr__�_expire_memoizations)r~r0r��
mapped_clsrA�mpr�r�s        rS�_add_attributerH&s����s�|�|�#��4�c�:�
�	��e�V�$� ��e�,��J�'�5�5���
6�
�
�!�!�.�.�s�E�:�
��|�
,��0�0�B��1�1���Q�$�S�#�.��
�+�9�9��$�:����)�)�6�6�s�C�@�
2���%�%�2�2�3��;�
��~�
.��!�!�.�.�s�E�:�
��1�
2�u�y�y�C�7G�$�E�I�I�.�E��!�!�.�.�s�E�:����S�#�u�-��!�!�6�6�8��	
����c�5�)rVc��d|jvr�||jvr�td|�jjsu|j|}t	|t
tttf�rtd��tj||�td|�jj�ytj||�y)NrLr�z<Can't un-map individual mapped attributes on a mapped class.)
r�rrL�_dispose_calledr�r4r&r'rr�r��__delattr__rE)r~r0r�s   rS�_del_attributerLZs�������$��3�<�<���&��
�
�*�_�_�%����S�!����F�L�.�:L�M�
�&�N��
�
���S�#�&��*�C�
��j�-�-�/�����c�"rVc��t|�}|D]8}t||�st|�d|j����t	||||��:y)a=A simple constructor that allows initialization from kwargs.

    Sets attributes on the constructed instance using the names and
    values in ``kwargs``.

    Only keys that are present as
    attributes of the instance's class are allowed. These could be,
    for example, any mapped columns or relationships.
    z$ is an invalid keyword argument for N)r�r�r�rJrf)rQ�kwargsr�r�s    rS�_declarative_constructorrOrsL����:�D�
���t�Q���>?����O��
�	��a����#�rVr�c�R�|j�||_|j�||_yyrO)r0r�)r0�columns  rSr�r��s)��
�z�z����
�
�{�{�����rV)r~r�rWz3Optional[Union[_DeferredMapperConfig, Mapper[Any]]])r~r�rWr�)r~r�rWr)F)r~r�r�rIr�r�rWz
Optional[Any])r~r�rWzOptional[ClassManager[_O]])r�r>r~r�r�r=rWr�)
r�r>r~r�r�r�r�r`rWrK)r�rrWr�)r�rr�rIr~r�rWr�)rrr;rIrWr)r~r�r0rIr�zMapperProperty[Any]rWrl)r~r�r0rIrWrl)rQrrNrrWrl)r0rIrQzColumn[Any]rWrl)rrZ�
__future__rr�rr�typingrrrrrr	r
rrr
rrrrrrr#�rrrr+rr�_typingrrrrr�rr�descriptor_propsr r!�
interfacesr"r#r$r%r&r'�mapperr(r�r)r*r1r+r,r-r.r0�sqlr2�sql.baser3�
sql.schemar4r5r6�util.typingr7r8r9r:r;r<r=r>r?rr@rA�sql.elementsrBrC�sql.selectablerDrErIr`�_TableArgsTyperHr]rnrr�r�r�r�r�r��preload_moduler�r�r�r�r�r�rIrzrHrLrOrJr�rPrVrS�<module>ras���/�"���	�������������� ����������+�-�*�"� �/�-�)�+�/�(�$�&��&�$�)�'��)���������-�"�$�$�"�#��#�&��'�-�*�%�+��T������S��!�
��u�S�#�X���S�#�X��6�7��-�(�2�,�-�,�2�2�6��,�@�)�@�
�	�
�8�
��,�.38�$�	�$�!�$�+/�$��$�N�G��G�"+�G�4>�G��G�;��;�	�;� �;��	;�
�;�����.�/�H�0�H��	����&��	��W�W�t;!�m�;!�|!�:�!�N
�]�N
�b0����.�/��%��BE����0��J&�2�J&�Z1*�	�1*��1*�%8�1*�	�1*�h#�0$�&%/��!�rV
Back to Directory File Manager