Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/ext/declarative/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/ext/declarative/__pycache__/base.cpython-311.pyc

�

�܋f]}���dZddlZddlZddlmZddlmZddlmZddlmZdd	lm	Z	dd
l
mZddl
mZddl
m
Z
ddl
mZdd
l
mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl	mZdxa a!d�Z"d�Z#d�Z$d(d�Z%d�Z&d�Z'Gd�d e(��Z)Gd!�d"e)��Z*d#�Z+d$�Z,d%�Z-d&e-_.d'�Z/dS))z(Internal implementation for declarative.�N)�instrumentation�)�clsregistry�)�event)�exc)�util)�class_mapper)�mapper)�	mapperlib)�synonym)�QueryableAttribute)�_is_mapped_class)�InspectionAttr)�MapperProperty)�ColumnProperty)�CompositeProperty)�Column)�Table)�
expression)�topologicalc��t�|��rt�|��St|��rt	|d���SdS)NF)�	configure)�_DeferredMapperConfig�has_cls�config_for_clsrr
��clss �V/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/ext/declarative/base.py�_declared_mapping_infor %sT���$�$�S�)�)��$�3�3�C�8�8�8�	�#�	�	���C�5�1�1�1�1��t�c��|turdSt|dd���r!|jD]}t|��}|�|cS�dSt	|��}|�|S|S)N�__abstract__T��strict)�object�_get_immediate_cls_attr�	__bases__�"_resolve_for_abstract_or_classical�"_dive_for_classically_mapped_class)r�sup�	classicals   rr)r)0s}��
�f�}�}��t��s�N�4�@�@�@���=�	�	�C�4�S�9�9�C����
�
�
���4�6�s�;�;�	�� ����Jr!c��t|d��rdStj|��}|�|S|jD]}t	|��}|�|cS�dS)N�_decl_class_registry)�hasattrr�manager_of_classr(r*)r�managerr+rs    rr*r*Csp��
�s�*�+�+���t��.�s�3�3�G����
��=�	�	�C�7��<�<�F��!��
�
�
�"��4r!Fc���t|t��sdS|jD]V}t|d��}|ot	|��du}||jvr'||us|r
||jvrn	|s|st||��cS�WdS)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.

    Nr.)�
issubclassr&�__mro__r/r*�__dict__r(�getattr)r�attrnamer%�base�_is_declarative_inherits�_is_classicial_inheritss      rr'r'Ws����c�6�"�"���t������#*�4�1G�#H�#H� �(�(�
E�2�4�8�8��D�	 �
�t�}�$�$��C�K�K�*0�
����&�&�&�&�0�'�/�'�
�4��*�*�*�*�*���tr!c��t�ddlmattjfat|dd���rdSt�|||��dS)Nr)�
declared_attrr#Tr$)r<�apir	�
classproperty�declarative_propsr'�
_MapperConfig�
setup_mapping)r�	classname�dict_s   r�_as_declarativerDysb����&�&�&�&�&�&�*�D�,>�?���s�N�4�@�@�@��������Y��6�6�6�6�6r!c��t|t��r.t|dd��rtjd|�d|�d���dSdS)N�
_cascadingFz1@declared_attr.cascading is not supported on the z attribute on class z5.  This attribute invokes for subclasses in any case.T)�
isinstancer?r6r	�warn)�obj�namers   r�_check_declared_props_nocascaderK�s_���#�(�)�)�	��3��e�,�,�	��I�I�.2�T�T�3�3�3�8�
�
�
�
�t��ur!c�l�eZdZed���Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�ZdS)r@c��t|dd���pt|d��}|rt}nt}||||��dS)N�_sa_decl_prepare_nocascadeTr$�_sa_decl_prepare)r'r/rr@)r�cls_rBrC�	defer_map�cfg_clss      rrAz_MapperConfig.setup_mapping�sd��+��.�t�
�
�
�/�
�T�-�
.�
.�	��	$�+�G�G�#�G����i��'�'�'�'�'r!c���||_t|��|_||_d|_tj��|_t��|_	i|_
|���i|j_|�
��tj���	t#j|j|j��|���|���|���|���|���tj���dS#tj���wxYw�N)r�dictrCrB�persist_selectabler	�OrderedDict�
properties�set�declared_columns�
column_copies�_setup_declared_events�_sa_declared_attr_reg�_scan_attributesr�_CONFIGURE_MUTEX�acquirer�	add_class�_extract_mappable_attributes�_extract_declared_columns�_setup_table�_setup_inheritance�_early_mapping�release)�selfrPrBrCs    r�__init__z_MapperConfig.__init__�s<������%�[�[��
�"���"&����*�,�,��� #���������#�#�%�%�%�
*,���&��������"�*�*�,�,�,�
	1��!�$�.�$�(�;�;�;��-�-�/�/�/��*�*�,�,�,��������#�#�%�%�%����!�!�!��&�.�.�0�0�0�0�0��I�&�.�.�0�0�0�0���s
�/BE� E2c�.�|���dSrT)�map�rhs rrfz_MapperConfig._early_mapping�s�����
�
�
�
�
r!c����t�jd��r%tjtd���fd���}t�jd��r'tjtd���fd���}dSdS)N�__declare_last__�after_configuredc�:���j���dSrT)rrnrls�rroz>_MapperConfig._setup_declared_events.<locals>.after_configured�s�����)�)�+�+�+�+�+r!�__declare_first__�before_configuredc�:���j���dSrT)rrqrls�rrrz?_MapperConfig._setup_declared_events.<locals>.before_configured�s�����*�*�,�,�,�,�,r!)r'rr�listens_forr)rhrorrs`  rr\z$_MapperConfig._setup_declared_events�s����"�4�8�-?�@�@�	,�
�
�v�'9�
:�
:�
,�
,�
,�
,�;�
:�
,�#�4�8�-@�A�A�	-�
�
�v�':�
;�
;�
-�
-�
-�
-�<�
;�
-�
-�
-�	-�	-r!c
�N��|j�|j}|j}d}dx}}d}�jD�]�}|�uo#t	|��duot|dd���}|s|�ur|�|��t|�����D�]y\}	}
|	dkrt|
|	���}|s	|r|r�fd�}�)|	dkrt|
|	���}|s|r|r�j
}�N|	dkrct|
|	���}|sO|r|rK�j}t|tttd��f��st!jd���|�urd}��|r<t|
t$��r&t'jd	|j�d
|	�d|�d��d
�	����|�u�rt|
t,��r��t|
t.��rt!jd
���t|
t$���rt|
t&j��}|sX|
jrQ|	|vrt'jd|	�d��d���|
�|
���x||	<x||
<}
t9�|	|
��nm|rt'jd��t=�|	��}
t|
t>��r(|
j r!t|
j!t.��s|
j"}
|
x||	<||
<t|
t,t.f��r|
j#�|
j$|
_#��b|�%||	|
����{���|r|sd}||_&||_'||_(dS)NrNTr$�__mapper_args__c�,��t�j��SrT)rUrvrs�r�mapper_args_fnz6_MapperConfig._scan_attributes.<locals>.mapper_args_fn�s���#'��(;�#<�#<�<r!�
__tablename__�__table_args__z3__table_args__ value must be a tuple, dict, or Nonez*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.�Attribute '�' on class z> cannot be processed due to @declared_attr.cascading; skippingzJUse of sqlalchemy.util.classproperty on declarative classes is deprecated.))rrCr[r4r r'�_produce_column_copies�vars�itemsrKryrzrG�tuplerU�typer�
ArgumentErrorr?r	rH�__name__rr�InvalidRequestErrorr>rF�__get__�setattr�warn_deprecatedr6r�_is_internal_proxy�original_property�
descriptor�doc�__doc__�_warn_for_decl_attributes�
table_args�	tablenamerx)rhrCr[rxr��inherited_table_argsr�r8�class_mappedrJrI�
check_decl�oldclassprop�retrs              @rr^z_MapperConfig._scan_attributes�si����h���
���*�
���,0�0�
�)��	��K�|	H�|	H�D��C���*�4�0�0��<��/��6�t�����
� �
2�D��O�O��+�+�D�1�1�1�!�$�Z�Z�-�-�/�/�p
H�p
H�	��c��,�,�,�!@��T�3�"�"�J�*�=�<�=�:�=�=�=�=�=�=���_�,�,�!@��T�3�"�"�J�%�6�l�6�j�6�$'�$5�	���-�-�-�!@��T�3�"�"�J�&�
8�|�
8�z�
8�%(�%7�
�)�&���d�4�j�j�(A� � ��#&�"3�!0�#�#�� �s�?�?�37�0��!�LH�!�#�'8�9�9���	�	�
 $�}�}�}�d�d�d�D�D�D�#�#�#�	?�������_�_�"�#�v�.�.�?H� �#�C��8�8�<H�!�5�<����$�C�):�;�;�5H�'1�#�t�7I�'J�'J��+�)C���)C�#�u�}�}�!%�	�	�37�$�$����%=�!"�!"�!"�'*�k�k�#�s�&;�&;�<�E�$�K�<�-� #�+� #�#�C��s�3�3�3�3�+�"� $� 4�%I�!"�!"�!"�
#*�#�t�"4�"4�C�!+�3�� ?� ?�5�$'�$:�5�)3�$'�$9�>�)"�)"�5�'*�n��?B�B�E�$�K�-��*<�&�s�V�^�,D�E�E�2� #���&)�k�C�G��
�6�6�t�T�3�G�G�G��ap
H�d �	�	�	��J�$���"���,����r!c�t�t|tj��rtjd|�d|�d���dSdS)Nr|r}zk appears to be a non-schema 'sqlalchemy.sql.column()' object; this won't be part of the declarative mapping)rGr�ColumnClauser	rH)rhr�key�cs    rr�z'_MapperConfig._warn_for_decl_attributescsU���a��0�1�1�	��I�I��3�3�����
�
�
�
�
�	�	r!c��|j}|j}|j}t|�����D]�\}}t|t��r�t||��|ur�-|jrtj
d���||vrUd|vr|jp||djvs;|�
��x||<}|j|_t|||��|||<��dS)NzvColumns with foreign keys to other columns must be declared as @declared_attr callables on declarative mixin classes. �	__table__)rrCr[rr�rGrr6�foreign_keysrr�rJr��copy�_creation_orderr�)rhr8rrCr[rJrI�copy_s        rr~z$_MapperConfig._produce_column_copiesls���h���
���*�
��d���)�)�+�+�	(�	(�I�D�#��#�v�&�&�
(��3��%�%�S�0�0���%�
(��1�9����
��&�&��5�(�(���)�T�e�K�.@�.B�B�B�14�����;�M�#�&��,/�,?�E�)��C��u�-�-�-�"'�E�$�K��)	(�	(r!c��|j}|j}|j}t|dd���}t	|��D�]�}|dvr�||}t|t��rIt|t��r#|jrtj
d|jz��t||��}nNt|t��r9|j
|ur0|j|kr%t|j��}t!|||��t|t"��rNt%|��dkr;t|dt&t(f��rtj
d|z����t|t&t(f��sV|�d	��s?|�|��|�|||��|st!|||�����|d
krt1jd���t5j||��}|||<���dS)NrNTr$)r�ryrvz�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?�__�metadatazdAttribute name 'metadata' is reserved for the MetaData instance when using a declarative base class.)rrCrXr'�listrGr?r<rFr	rHr6r�class_r�r
r�r��lenrr�
startswith�popr�rr�r�_deferred_relationship)rhrrC�	our_stuff�late_mapped�k�value�props        rrbz*_MapperConfig._extract_mappable_attributes�s?���h���
���O�	�-��-�d�
�
�
���e���:	 �:	 �A��E�E�E���!�H�E��%�!2�3�3�
'��e�]�3�3���8H���I�� $�x�(���� ��Q������5�"4�5�5�
'��L��+�+��I��N�N� ��	�*�*����Q��&�&�&��5�%�(�(�
���J�J�!�O�O��u�Q�x�&�.�)A�B�B�$��	�B�DE�F����
�����'?�@�@�
��|�|�D�)�)�/��I�I�a�L�L�L��2�2�3��5�A�A�A�&�/���Q��.�.�.���j����-�.����
�5�c�5�A�A�D��I�a�L�L�u:	 �:	 r!c
����|j����fd����|j}tjt
��}t
������D�]\}}t|ttf��r�|jD]x}t|t��ra|j
�Zt||��t|t��s ||j�|��|�|���y��t|t��rSt||��||j�|��|�|��||jkr�|=��
|���D][\}}t%|��dkrCt'jd|j�d|�dd�t/|�����d����\dS)	Nc����|jSrT�r�)r�r�s �r�<lambda>z9_MapperConfig._extract_declared_columns.<locals>.<lambda>�s���y��~�'E�r!�r�rz	On class z, Column object z7 named directly multiple times, only one will be used: z, z$. Consider using orm.synonym instead)rX�sortrZ�collections�defaultdictrYr�r�rGrr�columnsr�table�_undefer_column_namerJ�addr�r�r	rHrB�join�sorted)	rhrZ�name_to_prop_keyr�r��colrJ�keysr�s	        @rrcz'_MapperConfig._extract_declared_columns�s�����O�	�	���E�E�E�E��F�F�F� �0��&�2�3�7�7���9�?�?�,�,�-�-�	'�	'�F�C���!�n�.?�@�A�A�
'��9�2�2�C�!�#�v�.�.�2�3�9�3D�,�S�#�6�6�6�)�!�->�?�?�@�,�S�X�6�:�:�3�?�?�?�(�,�,�S�1�1�1��2��A�v�&�&�

'�$�S�!�,�,�,� ���(�,�,�S�1�1�1� �$�$�Q�'�'�'��!�%�<�<�!�#���*�0�0�2�2�	�	�J�D�$��4�y�y�1�}�}��	�	�
�~�~�~�t�t�t�d�i�i��t���.E�.E�.E�.E�	H�����	�	r!c���|j}|j}|j}|j}|j}t|d����x}|_d}t
|d��rtj|j	��}nt}d|vr�|��di}	}|r]t|t��r|}	nEt|t��r0t|dt��r|dd�|d}	}n|}|�d��}
|
rd	|	d
<|||jgt|��t|��z�Ri|	��x|_}nD|j}|r;|D]8}|j�|��st'jd|jz����9||_dS)Nc��|jSrTr�)r�s rr�z,_MapperConfig._setup_table.<locals>.<lambda>�s	��A�,=�r!r��
__table_cls__r�����r�__autoload__T�autoloadz8Can't add additional column %r when specifying __table__)rr�r�rCrZr�r/r	�unbound_method_to_callabler�rrGrUr��getr�r�r��contains_columnrr�r��local_table)rhrr�r�rCrZr��	table_cls�args�table_kwr�r�s            rrdz_MapperConfig._setup_table�s����h���N�	��_�
��
���0��39��"=�"=�4
�4
�4
�	
��4�0����3��(�(�	��7��8I�J�J�I�I��I��e�#�#��$�!#�R�h���.�!�*�d�3�3�.�#-���#�J��6�6�.�%�j��n�d�;�;�.�-7��"��-=�z�"�~�(�D�D�#-�D� �9�9�^�4�4���0�+/�H�Z�(�(1�	���L�)��,�-�-��d���;�)�)�)��	)�)���
����M�E��
�)���A� �7�2�2�1�5�5��!�/�3�56�U�;�����
!����r!c
��|j}|j}|j}|j}g}|jD]K}t|��}|��t
|��	�'t|dd���s|�|���L|r;t|��dkrtjd|�d|�����|d|_nd|_|�.|j�'t|d��stjd	|z���|jr�t
|j��}|j}|j
}	|��|rtjd
���|D]�}|j|jvrC|j|j|ur�%tjd|�d|�d
|j|j�d����|jrtjd���|�|��|	�|	|ur|	�|����dSdSdS)NrNTr$rzClass z has multiple mapped bases: r�__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.zColumn 'r}z! conflicts with existing column '�'zDCan't place primary key columns on an inherited class with no table.)r�rr�rZr(r)r r'�appendr�rr��inheritsrVr�rJr��primary_key�
append_column�_refresh_for_new_column)
rhr�rr�rZr�r��inherited_mapper�inherited_table�inherited_persist_selectables
          rrez _MapperConfig._setup_inheritance's���� ���h���_�
��0������		#�		#�A�2�1�5�5�A��y��%������"9��/��#�#�#��
����"�"�"���	!��8�}�}�q� � ��-�-�@C���X�X�N����%�Q�K�D�M�M� �D�M�
�M��
�%�+�C��@�@�&��)�&�(+�,���
�
�]�!	P�5�d�m�D�D��.�:�O�+;�+N�(��}����+�)����
*�P�P�A��v��!2�2�2�*�,�Q�V�4��9�9�$�!�/�/� !�q�q�#�#�#��'8���'@�'@�'@�B����
�}��!�/�3����$�1�1�!�4�4�4�4�@�8��O�O�4�L�L�Q�O�O�O��C!	P�!	P�
�}�P�Pr!c�d�
�|j}|jr|���}ni}dD],}||vr&||}|j�||��||<�-d|vs
Jd���|jr
|j|d<|j�r|�dd��s�t|j���
�
j}d|vrct�
fd�|jD�����	�
j
pd��x|d<}|�d	�|jD����t|�����D]Y\}}t|t j��s� |�
jvr0�
j|}t|t&��r|g|jz||<�Z|���}	||	d
<|	|_dS)N)�version_id_col�polymorphic_onr�z=Can't specify 'inherits' explicitly with declarative mappings�concreteF�exclude_propertiesc�0��g|]}|�jv�|j��Sr�)�_columntopropertyr�)�.0r�r�s  �r�
<listcomp>z;_MapperConfig._prepare_mapper_arguments.<locals>.<listcomp>�s4��������$4�$F�F�F���F�F�Fr!r�c��g|]	}|j��
Sr�r�)r�r�s  rr�z;_MapperConfig._prepare_mapper_arguments.<locals>.<listcomp>�s��:�:�:�q�Q�U�:�:�:r!rX)rXrxr[r�r�r r�rYr��unionr��difference_updaterZr�r�rGr�
ColumnElement�_propsrr�r��mapper_args)rhrXr�r��vr�r�r��p�result_mapper_argsr�s          @r�_prepare_mapper_argumentsz'_MapperConfig._prepare_mapper_argumentsrs'����_�
���	��-�-�/�/�K�K��K�6�	>�	>�A��K�����N��!%�!3�!7�!7��1�!=�!=��A���
�k�)�)�)�J�
*�)�)��=�	4�&*�m�K�
�#��=�"	:�����U�!C�!C�"	:�
 6�d�m�D�D��.�:�O�#�;�6�6�IL�����!0�!2����J�J��%�(�;�A�r�B�B�
C��0�1�4F�#�4�4�:�:�D�$9�:�:�:�����z�/�/�1�1�2�2�
:�
:���3�!�#�z�'?�@�@����(�/�/�/�(�/��2�A�!�!�^�4�4�:�*-���	�(9�
�1�
��(�-�-�/�/��+5��<�(�-����r!c��|���t|jd��rtj|jj��}nt}||j|jfi|j��x|j_	}|j`
|S)N�__mapper_cls__)r�r/rr	r�r�rr�r��
__mapper__r])rh�
mapper_cls�mp_s   rrkz_MapperConfig.map�s����&�&�(�(�(��4�8�-�.�.�	 ��8���'���J�J� �J�$.�J��H�d�&�%
�%
�*.�*:�%
�%
�	
����c�
�H�*��
r!N)r��
__module__�__qualname__�classmethodrArirfr\r^r�r~rbrcrdrer�rkr�r!rr@r@�s��������
(�
(��[�
(�"1�"1�"1�H���-�-�-�K-�K-�K-�Z���(�(�(�6D �D �D �L%�%�%�N1!�1!�1!�fIP�IP�IP�V:.�:.�:.�x
�
�
�
�
r!r@c����eZdZej��Zd�Zed���Zej	d���Ze
d���Ze
d���Ze
d���Z
e
d���Ze
dd	���Z�fd
�Z�xZS)rc��dSrTr�rls rrfz$_DeferredMapperConfig._early_mapping�s���r!c�*�|���SrT)�_clsrls rrz_DeferredMapperConfig.cls�s���y�y�{�{�r!c�b�tj||j��|_||j|j<dSrT)�weakref�ref�_remove_config_clsr��_configs)rhr�s  rrz_DeferredMapperConfig.cls�s,���K���(?�@�@��	�#'��
�d�i� � � r!c�<�|j�|d��dSrT)r�r�)rr�s  rr�z(_DeferredMapperConfig._remove_config_cls�s �������d�#�#�#�#�#r!c�b�t|t��otj|��|jvSrT)rGr�r�r�r��rr�s  rrz_DeferredMapperConfig.has_cls�s*���&�$�'�'�O�G�K��,?�,?�3�<�,O�Or!c��t|d��r|���tj|dtj|��z����)N�_sa_raise_deferred_configzOClass %s has a deferred mapping on it.  It is not yet usable as a mapped class.)�msg)r/r�orm_exc�UnmappedClassError�_safe_cls_namer�s  r�raise_unmapped_for_clsz,_DeferredMapperConfig.raise_unmapped_for_cls�s]���6�6�7�7�	/��,�,�.�.�.��(��(�*1�*@��*H�*H�I�
�
�
�	
r!c�@�|jtj|��SrT)r�r�r�r�s  rrz$_DeferredMapperConfig.config_for_cls�s���|�G�K��/�/�0�0r!Tc�@�����fd�d�|j���D��D��}|s|Std�|D�����g}�D])�|���fd��jD�����*tt
j||����S)Nc�>��g|]\}}|�t|����|��SrT)r3)r��mrP�base_clss   �rr�z:_DeferredMapperConfig.classes_for_base.<locals>.<listcomp>�s<���
�
�
���4���J�t�X�$>�$>��
���r!c� �g|]}||jf��Sr�r�r�r	s  rr�z:_DeferredMapperConfig.classes_for_base.<locals>.<listcomp>�s��F�F�F�1�Q���J�F�F�Fr!c3�(K�|]
}|j|fV��dSrTrrs  r�	<genexpr>z9_DeferredMapperConfig.classes_for_base.<locals>.<genexpr>�s(����A�A�1�Q�U�A�J�A�A�A�A�A�Ar!c3�@�K�|]}|�v��|��fV��dSrTr�)r�r
�all_m_by_cls�m_clss  ��rrz9_DeferredMapperConfig.classes_for_base.<locals>.<genexpr>�sI���������|�+�+��h�'��e�)<�=�+�+�+�+��r!)r��valuesrU�extendr(r�rr�)rr
r��classes_for_base�tuplesrrs `   @@rrz&_DeferredMapperConfig.classes_for_base�s������
�
�
�
�F�F���0C�0C�0E�0E�F�F�F�
�
�
���	$�#�#��A�A�0@�A�A�A�A�A����!�	�	�E��M�M������ %�����
�
�
�
�
�K�$�V�-=�>�>�?�?�?r!c���|j�|jd��tt|�����SrT)r�r�r��superrrk)rh�	__class__s �rrkz_DeferredMapperConfig.map�s:����
���$�)�T�*�*�*��*�D�1�1�5�5�7�7�7r!)T)r�r�r�r	rWr�rf�propertyr�setterr�r�rrrrrk�
__classcell__)rs@rrr�s"��������t��!�!�H�
�
�
�����X��	�Z�(�(��Z�(��$�$��[�$��P�P��[�P��
�
��[�
��1�1��[�1��@�@�@��[�@�*8�8�8�8�8�8�8�8�8r!rc���d|jv�r�t|t��rGt||��|j�|��|j�||��dSt|t��rm|j	D]H}t|t��r1|j
�*t||��|j�|���I|j�||��dSt|t��r0|j�|tj
||����dSt|t��rO|j|krDt!|j��}|j�|tj
||����dSt"�|||��|j���dSt"�|||��dS)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.

    r�N)r5rGrr�r�r�r��add_propertyrr�r�rrr�rr�r
r��__setattr__�_expire_memoizations)rr�r�r�s    r�_add_attributer s����s�|�#�#��e�V�$�$�	2� ��e�,�,�,��M�'�'��.�.�.��N�'�'��U�3�3�3�3�3�
��~�
.�
.�	2��}�
5�
5���c�6�*�*�5�s�y�/@�(��c�2�2�2��M�/�/��4�4�4���N�'�'��U�3�3�3�3�3�
��~�
.�
.�
	2��N�'�'��[�7��U�C�C�
�
�
�
�
���1�
2�
2�		2�u�y�C�7G�7G��E�I�&�&�E��N�'�'��[�7��U�C�C�
�
�
�
�
�
���S�#�u�-�-�-��N�/�/�1�1�1�1�1�����c�5�)�)�)�)�)r!c�l�d|jvr�||jvr�|jjsz|j|}t|tt
ttf��rtd���t�
||��|j���dSt�
||��dS)Nr�z<Can't un-map individual mapped attributes on a mapped class.)r5r��_dispose_calledrGrrrr�NotImplementedErrorr��__delattr__r)rr�r�s   r�_del_attributer%%s���	���$�$��3�<�����.�
 ���S�!����F�N�N�<N�O�
�
�	2�&�N���
�
���S�#�&�&�&��N�/�/�1�1�1�1�1�����c�"�"�"�"�"r!c��t|��}|D]B}t||��st|�d|j�����t	||||���CdS)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/�	TypeErrorr�r�)rh�kwargsrPr�s    r�_declarative_constructorr):sw����:�:�D�
�$�$���t�Q���	��>?�a�a����O���
�	��a����#�#�#�#�$�$r!ric�B�|j�||_|j�	||_dSdSrT)r�rJ)r��columns  rr�r�Ps,��
�z����
�
�{��������r!)F)0r�r�r��sqlalchemy.ormr�rrrr	�ormr
rrrr
�orm.attributesr�orm.baserr�orm.interfacesr�orm.propertiesrr�schemarr�sqlrrr<r?r r)r*r'rDrKr&r@rr r%r)r�r�r�r!r�<module>r5s���/�.���������*�*�*�*�*�*�������������������������������!�!�!�!�!�!�������������������0�0�0�0�0�0�(�(�(�(�(�(�&�&�&�&�&�&�,�,�,�,�,�,�,�,�,�,�,�,�/�/�/�/�/�/�������������������������%)�(�
�!�������&���(����D
7�
7�
7����g�g�g�g�g�F�g�g�g�T?8�?8�?8�?8�?8�M�?8�?8�?8�D"*�"*�"*�J#�#�#�*$�$�$�&%/��!�����r!

Hacked By AnonymousFox1.0, Coded By AnonymousFox