✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server366.web-hosting.com ​🇻​♯➤ 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP 🇾​♯➤ 2025

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 67.223.118.204 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.217.62
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗙𝗙 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ 𝗔𝗟𝗟 𝗪𝗢𝗥𝗞𝗜𝗡𝗚....

𝗛𝗢𝗠𝗘
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /opt/hc_python/lib/python3.12/site-packages/sqlalchemy/orm/__pycache__//strategies.cpython-312.pyc
�

��!h:��
�	�dZddlmZddlZddlZddlmZddlmZddlmZddlm	Z	ddlm
Z
dd	lmZd
dlm
Z
d
dlmZd
d
lmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlmZd
dlm Z d
dl!m"Z"d
dl!m#Z#d
dl!m$Z$d
dl!m%Z%d
d lm&Z&d
d!lm'Z'd
d"l(m)Z)d
d#l*m+Z+d
d$l,m-Z-d
d%lm.Z.d
d&lm/Z/d'd(lm0Z0d'dlmZ1d'd)lm2Z2d'd*lm3Z3d'd+lm4Z4d'dlmZd'dl4mZ5d'd,l4m6Z6d'd-l7m8Z8d'd.l7m9Z9d'd/l:m;Z;e
rd
d0l<m=Z=d
d1lm>Z>d'd2l?m@Z@						ddd4�ZAej�j�d3d3�5�Gd6�d7e&��ZDe3j�ej�j�d8d3�5�Gd9�d:e&���ZFe3j�ej�j�d8�;�Gd<�d=eF���ZGe3j�ej�j�d8d8�>�ej�j�d8d8d8�?�ej�j�d8�@�GdA�dBe&�����ZHGdC�dD�ZIGdE�dFe&�ZJe3j�ej|j�d8�@�GdG�dHe&���ZKe3j�ej|j�dI�J�ej|j�d�J�GdK�dLeJ����ZLe3j�ej|j�d8�J�ej|j�dM�J�ej|j�dN�J�ej|j�dO�J�ej|j�dP�J�GdQ�dReJej�e3j��������ZOGdS�dT�ZPGdU�dVeJ�ZQej|j�dW�J�GdX�dYeQ��ZRe3j�ej|j�dZ�J�Gd[�d\eQ���ZSe3j�ej|j�d]�J�ej|j�d3�J�Gd^�d_eJ����ZTe3j�ej|j�d`�J�Gda�dbeQej����ZUdc�ZVy)ezWsqlalchemy.orm.interfaces.LoaderStrategy
   implementations, and related MapperOptions.�)�annotationsN)�Any)�Dict)�Optional)�Tuple)�
TYPE_CHECKING)�Union�)�
attributes)�exc)�
interfaces)�loading)�
path_registry)�
properties)�query)�
relationships)�
unitofwork)�util)�_DEFER_FOR_STATE)�_RAISE_FOR_STATE)�_SET_DEFERRED_EXPIRED)�ATTR_WAS_SET)�LoaderCallableStatus)�PASSIVE_OFF)�PassiveFlag)�_column_descriptions)�ORMCompileState)�ORMSelectCompileState)�QueryContext)�LoaderStrategy)�StrategizedProperty)�_state_session)�
InstanceState)�Load)�_none_only_set)�AliasedClass�)�event)�inspect)�log)�sql)�visitors)�LABEL_STYLE_TABLENAME_PLUS_COL)�Select)�Literal)�Mapper)�RelationshipProperty)�
ColumnElementFc	������g}
|xr|j�|r!|jr|
jt�|j|j
jvr;|j
j|j\��|
j��fd��|r|
jtj�|r/|j��r!|jr|
j��fd��|jD]�}||jj|j�us�+|jj|j�r�Qt!j"|j$|jf|�|||xr*|jxs|j&t(j*u|||||xs
|j,|j.d�|	��}|
D]}
|
||��
��y)Nc�H��tj||j�fi���S�N)�orm_util�_validator_events�key)�desc�prop�fn�optss  ���J/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/strategies.py�<lambda>z%_register_attribute.<locals>.<lambda>\s#���x�9�9��d�h�h�� �&*� �c�2��tj|���Sr5)r�backref_listeners)r9r:�backref�uselists  ��r=r>z%_register_attribute.<locals>.<lambda>js���:�#?�#?��'�7�$r?)�parent_tokenrC�compare_function�	useobject�trackparent�typecallable�	callable_�active_history�
impl_class�send_modified_events�doc)rC�
single_parent�append�single_parent_validatorr8�parent�
validatorsr�track_cascade_events�back_populates�_effective_sync_backref�self_and_descendants�_props�get�
class_manager�_attr_has_implr�register_attribute_impl�class_�	directionr
�	ONETOMANY�viewonlyrM)r:�mapperrFrErHrI�proxy_propertyrJrK�kw�listen_hooks�mr9�hookrBr;r<rCs              @@@@r=�_register_attributerfFs�����L��(�D�L�L�G��T�'�'����3�4��x�x�4�;�;�)�)�)��;�;�)�)�$�(�(�3���D����
�	
�����J�;�;�<���%�%���t�3�3�����
�"�
(�
(���1�8�8�<�<��H�H�
�
��/�/�0�0����:��5�5��������"��!1�#�%���&�&�>��~�~��)=�)=�=�)�#�-�%�)2�]�%G�$�-�-�6G��H�H�#�$�%�D�*%���T�4� �%�3)r?)�
instrument�deferredc�6��eZdZdZdZ�fd�Z	dd�Zd�Z�xZS)�UninstrumentedColumnLoaderz�Represent a non-instrumented MapperProperty.

    The polymorphic_on argument of mapper() often results in this,
    if the argument is against the with_polymorphic selectable.

    )�columnsc�\��t�|�||�|jj|_yr5)�super�__init__�parent_propertyrk��selfrQ�strategy_key�	__class__s   �r=rnz#UninstrumentedColumnLoader.__init__�s%���
�����.��+�+�3�3��r?c�l�|jD]%}|r|j|}|j||��'yr5)rk�_append_dedupe_col_collection)	rq�
compile_state�query_entity�path�loadopt�adapter�column_collection�kwargs�cs	         r=�setup_queryz&UninstrumentedColumnLoader.setup_query�s4�����A���O�O�A�&���7�7��;L�M�r?c	��yr5��	rq�contextrwrxryr`�resultrz�
populatorss	         r=�create_row_processorz/UninstrumentedColumnLoader.create_row_processor�s��	
r?r5)	�__name__�
__module__�__qualname__�__doc__�	__slots__rnr~r��
__classcell__�rss@r=rjrj�s$�����I�4��
N�
r?rjTc�<��eZdZdZdZ�fd�Z	dd�Zd�Zd�Z�xZ	S)�ColumnLoaderz8Provide loading behavior for a :class:`.ColumnProperty`.)rk�is_compositec���t�|�||�|jj|_t	|jd�|_y)N�composite_class)rmrnrork�hasattrr�rps   �r=rnzColumnLoader.__init__�s;���
�����.��+�+�3�3���#�D�$8�$8�:K�L��r?c	��|jD]<}
|r&|r|j|
�}
|
�y|j|
}
|j|
|��>|jd}|r|j|}|�y|||j<y�Nr)rk�adapt_check_presentruro)rqrvrwrxryrzr{�memoized_populators�check_for_adaptr|r}�fetchs            r=r~zColumnLoader.setup_query�s������A��"��3�3�A�6�A��y������*�A��7�7��;L�M�����Q�����O�O�E�*�E��}��49��D�0�0�1r?c�v�d|_|jdj}|jjxs]|jdj
xsB|jduxr2|jj|jd�|ju}t|j|d|j|��y)NTrF)rFrErJ)�is_class_levelrk�typerorJ�primary_key�version_id_col�_columntopropertyrXrf�compare_values)rqr`�coltyperJs    r=�init_class_attributez!ColumnLoader.init_class_attribute�s���"����,�,�q�/�&�&��
� � �/�/�
��|�|�A��*�*�
��%�%�T�1�(��,�,�0�0��1F�1F��M��'�'�(�	�	�� � ���$�3�3�)�	
r?c	���|jD]I}	|r|j|	}	|j|	d�}
|
s�)|dj|j|
f�y|dj|jdf�y�NF�quick�expireT)rk�_getterrOr8)rqr�rwrxryr`r�rzr��col�getters           r=r�z!ColumnLoader.create_row_processorss���<�<�C���o�o�c�*���^�^�C��/�F���7�#�*�*�D�H�H�f�+=�>��
 �
�x� �'�'����4�(8�9r?�F)
r�r�r�r�r�rnr~r�r�r�r�s@r=r�r��s)���C�)�I�M��:�B
�,:r?r�)�query_expressionc�0��eZdZ�fd�Zd�Zd�Zd�Z�xZS)�ExpressionColumnLoaderc�����t�|�||�tj�j	d��t�fd�|jjD��|_y)Nc3�B�K�|]}|j�����y�wr5)�compare)�.0r}�nulls  �r=�	<genexpr>z2ExpressionColumnLoader.__init__.<locals>.<genexpr>)s!�����,
�)E�A��	�	�$���)E�s�)	rmrnr+r��label�anyrork�_have_default_expression)rqrQrrr�rss   @�r=rnzExpressionColumnLoader.__init__"sP���
�����.�
�x�x�z����%��(+�,
�)-�)=�)=�)E�)E�,
�)
��%r?c�,�d}	|r|jr
|j}	n"|jr|jj}	|	�y|	D]%}
|r|j|
}
|j	|
|��'|	d}|r|j|}|�y|||j<yr�)�_extra_criteriar�rorkru)rqrvrwrxryrzr{r�r|rkr}r�s            r=r~z"ExpressionColumnLoader.setup_query-s������w�.�.��-�-�G�
�
*�
*��*�*�2�2�G��?���A���O�O�A�&���7�7��;L�M��
��
����O�O�E�*�E��}��49��D�0�0�1r?c	��|r�|jr{|j}	|	D]I}
|r|j|
}
|j|
d�}|s�)|dj|j|f�y|dj|jdf�yyyr�)r�rkr�rOr8)rqr�rwrxryr`r�rzr�rkr�r�s            r=r�z+ExpressionColumnLoader.create_row_processorRs����w�.�.��-�-�G����!�/�/�#�.�C�����U�3����w�'�.�.����&�/A�B��
��8�$�+�+�T�X�X�t�,<�=�/�7r?c��d|_t|j|d|jdjj
d��y)NTFr)rFrE�accepts_scalar_loader)r�rfrorkr�r��rqr`s  r=r�z+ExpressionColumnLoader.init_class_attributels;��"����� � ���!�\�\�!�_�1�1�@�@�"'�	
r?)r�r�r�rnr~r�r�r�r�s@r=r�r�s���	
�#:�J>�4	
r?r�)rhrg)rhrg�	raiseload)�
do_nothingc�H��eZdZdZdZ�fd�Zd�Zd�Z	d	d�Zd�Z	d�Z
�xZS)
�DeferredColumnLoaderzAProvide loading behavior for a deferred :class:`.ColumnProperty`.)rk�groupr�c���t�|�||�t|jd�rt	d��|j
j
dd�|_|jj|_|jj|_	y)Nr�z8Deferred loading for composite types not implemented yetr�F)
rmrnr�ro�NotImplementedError�
strategy_optsrXr�rkr�rps   �r=rnzDeferredColumnLoader.__init__�su���
�����.��4�'�'�):�;�%�J��
��+�+�/�/��U�C����+�+�3�3����)�)�/�/��
r?c	
�$�|jr~|jjjr^|j|jjjvr2|j
j
d�j||||||||�y|jsZ|jr|j
j}	n|j
j}	|dj|j|	f�y|dj|jdf�y)N�)rhF�rgT�newr�F)
�
refresh_stater�_compile_options�_only_load_propsr8ro�
_get_strategyr�r�r��_raise_column_loader�_deferred_column_loaderrO)
rqr�rwrxryr`r�rzr��set_deferred_for_local_states
          r=r�z)DeferredColumnLoader.create_row_processor�s���*
�!�!��
�
�.�.�?�?����G�M�M�:�:�K�K�K�� � �.�.�;�
�"�"���������	��$�$��~�~��(�(�=�=�-�
�(�(�@�@�-�
�u��$�$�d�h�h�0L�%M�N��x� �'�'����5�(9�:r?c��d|_t|j|d|jdjj
|jd��y)NTFr)rFrErI�load_on_unexpire)r�rfrorkr�r��_load_for_stater�s  r=r�z)DeferredColumnLoader.init_class_attribute�sD��"����� � ���!�\�\�!�_�1�1�@�@��*�*�"�
	
r?c		�j�|jjr|jjs�|r8t	|j
�j
|jj�sG|r5|jr)|jjd|jzd�s|rA|j|vr3|jjd�j|||||||fi|	��y|jrt ||j<y|j"st$||j<yt&||j<y)Nzundefer_group_%sFr�)�compile_options�_render_for_subqueryro�_renders_in_subqueries�setrk�intersectionrQ�_should_undefer_in_wildcardr��
local_optsrXr8r�r~r�rr�rr)
rqrvrwrxryrzr{r��only_load_propsrbs
          r=r~z DeferredColumnLoader.setup_query�s���-�-�B�B��(�(�?�?������%�2�2��K�K�;�;��
��J�J��&�&�*�*�&����3�U�� �D�H�H��$?�
�D� � �.�.�;�
��k������!�#�
��
��
 �
 �8M��� 4� 4�5����8H��� 4� 4�5�8H��� 4� 4�5r?c�D�|jstjS|tjzstj
S|jj}|jrg|jD�cgc]Q}t|t�r?t|jt�r%|j|jk(r|j��S}}n
|jg}|D�cgc]}||jvs�|��}}t|�}|�9t!j"dt%j&|��d|j�d���|j(r|j+||d�t-j.|j|t1|�t2�tj4Scc}wcc}w)N�Parent instance zB is not bound to a Session; deferred load operation of attribute '�' cannot proceed�raise)r8r�
ATTR_EMPTYr�SQL_OK�PASSIVE_NO_RESULT�managerr`r��iterate_properties�
isinstancer!�strategyr��
unmodifiedr"�orm_exc�DetachedInstanceErrorr6�	state_strr��_invoke_raise_loadr�load_scalar_attributesr�rr)	rq�state�passive�localparent�p�toload�kr��sessions	         r=r�z$DeferredColumnLoader._load_for_state�sZ���y�y�'�2�2�2���+�+�+�'�9�9�9��m�m�*�*���:�:�%�7�7��7�A��a�!4�5��q�z�z�+?�@��G�G�t�z�z�)�	���7�
���h�h�Z�F�#�<�F�q�a�5�+;�+;�&;��F��<� ��'���?��/�/��%�%�e�,�d�h�h�8��
��>�>��#�#�E�7�G�<��&�&��L�L�%��U��[�	
�$�0�0�0��9��=s�0AF�F�.Fc�4�tjd|�d���)N�'z(' is not available due to raiseload=True��sa_exc�InvalidRequestError�rqr�r��lazys    r=r�z'DeferredColumnLoader._invoke_raise_load's���(�(�=A�C�
�	
r?r5)r�r�r�r�r�rnr�r�r~r�r�r�r�s@r=r�r�xs5���L�/�I�0�1;�f

�*�1I�f&1�P
r?r�c�8�eZdZdZddd�Zejfd�Zy)�LoadDeferredColumnsz7serializable loader object used by DeferredColumnLoaderc� �||_||_yr5)r8r�)rqr8r�s   r=rnzLoadDeferredColumns.__init__0s�����"��r?c���|j}|jj}|j|}|jrd}nd}|j|�}|j
||�S)N)�rhTr�)r�T)r�r�)r8r�r`rWr�r�r�)rqr�r�r8r�r:rrr�s        r=�__call__zLoadDeferredColumns.__call__4sc���h�h���m�m�*�*���!�!�#�&���>�>��L�F�L��%�%�l�3���'�'��w�7�7r?Nr�)r8�strr��bool)r�r�r�r�rnrrr�r�r?r=r�r�-s��A�#�'1�&<�&<�8r?r�c�,��eZdZdZdZ�fd�Zd�Z�xZS)�AbstractRelationshipLoaderz0LoaderStratgies which deal with related objects.)r`�targetrC�entityc���t�|�||�|jj|_|jj|_|jj
|_|jj|_yr5)rmrnror`rrrCrps   �r=rnz#AbstractRelationshipLoader.__init__Js^���
�����.��*�*�1�1����*�*�1�1����*�*�1�1����+�+�3�3��r?c	
�d�|jjd�j||||||||�S)N))r��	immediate)ror�r�r�s	         r=�#_immediateload_create_row_processorz>AbstractRelationshipLoader._immediateload_create_row_processorQsC���#�#�1�1�$�
�
�
���������	
�	
r?)r�r�r�r�r�rnr	r�r�s@r=rrEs���:�7�I�4�
r?rc��eZdZdZy)�DoNothingLoaderz�Relationship loader that makes no change to the object's state.

    Compared to NoLoader, this loader does not initialize the
    collection/attribute to empty/none; the usual default LazyLoader will
    take effect.

    N)r�r�r�r�r�r?r=rrjs��r?r�noload)r�c� �eZdZdZdZd�Zd�Zy)�NoLoaderzQProvide loading behavior for a :class:`.Relationship`
    with "lazy=None".

    r�c�l�d|_t|j|d|jj��y)NT)rFrH)r�rfro�collection_classr�s  r=r�zNoLoader.init_class_attribute�s0��"����� � ����-�-�>�>�		
r?c	�P���fd�}	|dj�j|	f�y)Nc����jr"tj||�j�yd|�j<yr5)rCr�init_state_collectionr8)r��dict_�rowrqs   �r=�invoke_no_loadz5NoLoader.create_row_processor.<locals>.invoke_no_load�s-����|�|��0�0���t�x�x�H�"&��d�h�h�r?r�)rOr8)
rqr�rwrxryr`r�rzr�rs
`         r=r�zNoLoader.create_row_processor�s&���	'�	�5�� � �$�(�(�N�!;�<r?N)r�r�r�r�r�r�r�r�r?r=rrvs���
�I�
�=r?r�selectr��raise_on_sql�baked_selectc����eZdZUdZdZded<ded<ded<ded<d	ed
<				d�fd�Zd�Zd
�Zd�Z	d�Z
ddddejfd�Z
d�Zejd�d��Zd�Z�xZS)�
LazyLoaderztProvide loading behavior for a :class:`.Relationship`
    with "lazy=True", that is loads when first accessed.

    )
�
_lazywhere�_rev_lazywhere�_lazyload_reverse_option�	_order_by�use_get�is_aliased_class�_bind_to_col�_equated_columns�_rev_bind_to_col�_rev_equated_columns�_simple_lazy_clause�
_raise_always�
_raise_on_sqlzColumnElement[bool]rzDict[str, ColumnElement[Any]]r"rr$�RelationshipProperty[Any]roc����t�|�||�|jddk(|_|jddk(|_t|j�j|_|jj}|j�\|_|_|_
|jd��\|_|_|_|jj"rSt%j&|jj"�D�cgc]}t)j*|ddi���c}|_nd|_|j.j1d||j�|jxrY|j2xrJ|jj4dj7|jdd	|j8j:�
�|_|j<r�t?|j�D]U}||j8j:vs�|j8j:|D]}|j||j|<� �W|j.j1d|�yycc}w)Nr�r�rT)�reverse_direction�
_orm_adaptz%s lazy loading clause %srF��use_proxies�compare_keys�equivalentsz4%s will use Session.get() to optimize instance loads) rmrnr�r'r(r)rr!ro�_join_condition�create_lazy_clauserr"r#rr$r%�order_byr�to_list�sql_util�_deep_annotater�logger�inforC�_get_clauser�r`�_equivalent_columnsr �list)rqrQrr�join_condition�elemr�r}rss       �r=rnzLazyLoader.__init__�s$���	�����.�!�/�/��7�7�B���!�/�/��7�>�I��� '���� 4� E� E����-�-�=�=��

�-�-�/�		
��O����!�
�-�-��-�E�		
����!��%����(�(�!�L�L��)=�)=�)F�)F�G��G�D��'�'��|�T�.B�C�G��D�N�
"�D�N������4�d�D�O�O�L��%�%�%�
��L�L� �
����'�'��*�2�2���� �"� �K�K�;�;�	3��	
���<�<��D�1�1�2���$�+�+�9�9�9�!�[�[�<�<�S�A��37�3H�3H��3M��-�-�a�0�B�3�

�K�K���F��
�
��7s�Ic	�l�d|_|jj}|jjrd}d}nB|jjt
jus|js|rd}d}n	d}d}ndx}}t|j|d|j|jj||��y)NTF)rFrIrHrJ�_deferred_history)r�ro�_legacy_inactive_history_stylerJr]r
�	MANYTOONEr rfr�r)rqr`r@rJr?s     r=r�zLazyLoader.init_class_attributes���"���
� � �?�?�	'����.�.�!�N� %��
� � �*�*�*�2F�2F�F��<�<�-�!%��$)�!�!&��$(�!�16�6�N�.��� � ����*�*��-�-�>�>�)�/�	
r?c�����tj|jddi�}||jc}�g�d�}t	j
|id|i���fd�}t	j|id|i�}|�fS)Nr,Tc��d|_y)NF)�unique)�	bindparams r=�visit_bindparamzFLazyLoader._memoized_attr__simple_lazy_clause.<locals>.visit_bindparam+s
��$�I�r?rEc����|j�vr,�j|j�|jdf�y|j�)�j|jd|jf�yyr5)�_identifying_keyrOr8�callable�value)rE�bind_to_col�paramss ��r=rFzFLazyLoader._memoized_attr__simple_lazy_clause.<locals>.visit_bindparam0sh����)�)�[�8��
�
�!�
�
�#�I�$>�$>�?�����#�#�+��
�
�y�}�}�d�I�O�O�D�E�,r?)r5r6rr"r,�traverse�cloned_traverse)rq�	lazywhere�	criterionrFrKrLs    @@r=�"_memoized_attr__simple_lazy_clausez-LazyLoader._memoized_attr__simple_lazy_clause"s�����+�+��O�O�l�D�1�
�	�#,�T�->�->��	�;���	%�	���)�R�+��)G�H�
	F��,�,��r�K��9�
�	��&� � r?c��|j\}}|�,tj||D���cgc]\}}}|��
c}}}�S|jj}|j�}	t
j|	�}
|tjzr|tjz}i}|D]K\}}}|�>|r(|tjzr|j||
||�}n|j||
||�}|||<�M||fScc}}}wr5)
r&r5�adapt_criterion_to_nullrorQ�objr�
instance_dictr�INIT_OK�LOAD_AGAINST_COMMITTED�#_get_committed_state_attr_by_column�_get_state_attr_by_column)rqr�r�rP�
param_keysr8�identrJr`�orrLs            r=�_generate_lazy_clausez LazyLoader._generate_lazy_clauseBs�� $� 8� 8��	�:��=��3�3���D��$5�C���C��D��
��%�%�,�,���I�I�K���(�(��+���[�(�(�(��{�*�*�*�G���!+��C���� ��w��)K�)K�K�"�F�F��u�e�W��E�#�<�<��u�e�W��E� �F�3�K�",��&� � ��3Es�
C5c�:�tjd|�d|�d���)Nr�z ' is not available due to lazy='r�r�s    r=r�zLazyLoader._invoke_raise_loadbs���(�(�8<�d�C�
�	
r?Nr�c��|js>|jjs|jr|jst
jS|j}d}	|jxr|xs
|j}
|tjzs|
r|tjzs|rt
jS|jr;|tjzs(|
r|tj zr|j#||d�t%|�}|s\|tjzrt
jSt'j(dt+j,|��d|j�d���|
�r@|j/|||�}	t
j|	vrt
jSt
j0|	vrt
j0S|j2j4st7j8|	�ryt7j:|	�ry|j|j<vr#|tj>zst
j@S|jC|jD|	||��}|�|t
jFury|S|tjzr|tj zst
jS|jI|||	||||||�	S)Nr�r�z> is not bound to a Session; lazy load operation of attribute 'r�)r��lazy_loaded_from)%r8ro�load_on_pending�
_load_pending�
session_idrr�r r�rr�r�NON_PERSISTENT_OKr�r'�NO_RAISE�RELATED_OBJECT_OKr�r"r�r�r6r��_get_ident_for_use_get�	NEVER_SETr`�allow_partial_pksr%r��
issuperset�dict�DEFERRED_HISTORY_LOADr�_identity_lookupr�PASSIVE_CLASS_MISMATCH�_emit_lazyload)
rqr�r�ry�extra_criteria�
extra_options�alternate_effective_path�execution_options�pending�primary_key_identityr r��instances
             r=r�zLazyLoader._load_for_stategsx���y�y��(�(�8�8��+�+��#�#�'�2�2�2��i�i�-��#���,�,�O��K�$N�w�7N�7N�3N���+�,�,�,�W��*�6�6�6�7�'�9�9�9�
����k�2�2�2���[�:�:�:�
�#�#�E�7�G�<� ��'�����-�-�-�+�=�=�=��/�/��%�%�e�,�d�h�h�8��
��#'�#>�#>����$� �$�5�5�9M�M�+�=�=�=�%�/�/�3G�G�+�5�5�5�
�;�;�0�0�!�.�.�/C�D��!�,�,�-A�B�����E�J�J�&��+�"C�"C�C�+�8�8�8��/�/����$��!&�	0��H��#��3�J�J�J��#�O��k�0�0�0���!>�!>�>�+�=�=�=��"�"��� �����$��

�
	
r?c	��|jj}|tjzr
|j}n|j
}|j}|jjD�cgc]}||||j||����c}Scc}w)N�r�)	r�r`rrWrXrYrkr�r#)rqr�r�r��instance_mapper�get_attrr�pks        r=rgz!LazyLoader._get_ident_for_use_get�s����-�-�.�.���[�7�7�7�&�J�J�H�&�@�@�H��
�
���k�k�-�-�
�-��
�U�E�4�#8�#8��#<�g�N�-�
�	
��
s�' B
zsqlalchemy.orm.strategy_optionsc
�v���tjj��jj	�}
tj|
g|
jttj��}tj}|d|d�z
}�jj�0|j�j �jj�}|j"}
|
s|t$j&zrtj(ddi�|_�j,}|j.s|r|j0rs|�|j2�j}n|�j}|j.}|r2|j0r&d}|t5j6�j|�fz
}||_n5|�$|j j:�j}n|�j}|r|xj8|z
c_|xj<d|iz
c_|rL�j>r&|t@jBzs�jE||d�tGjH|||||	��S�jJr�jJ|_&��fd�}|xjN|�jffz
c_'�jQ||�\}}|	r#tjRjU|	d	|i�}	nd	|i}	�j"|jVvr#|t@jXzstZj\S|
r3tj^t4j`|jc��r4ytj^t4jd|jc��ry�j>r&|t@jBzs�jE||d�|f|_3|ji|||	�
�}|jk�jm�jo�}�jpr|Sts|�}|r,|dkDr"tjtd�jz�|d
Sy)N)�_raw_columns�_propagate_attrs�_label_styler�F)�_invoke_all_eagers�_lazy_loaded_from�	autoflush�
_current_pathr)�load_optionsrsc�z���jjD]�}|jtjus� |j
s�-t
|jt�r�H�jj|jj|j�j|�j|���yr5)ro�_reverse_propertyr]r
rA�_use_getr�r�rr$�_construct_for_existing_pathr�r�rQ�lazyload�process_compile_state)�compile_context�revrq�strategy_optionss  ��r=�_lazyload_reversez4LazyLoader._emit_lazyload.<locals>._lazyload_reverseBs�����+�+�=�=���M�M�Z�%9�%9�9����&�s�|�|�Z�@�$�)�)�F�F�'�7�7�E�E��J�J����h�s�m�$9�$9�/�$J�>r?�_sa_orm_load_options)rsr
zKMultiple rows returned with uselist=False for lazily-loaded attribute '%s' r);r�	preloaded�orm_strategy_optionsr�__clause_element__r.�_create_raw_selectr~r-r�default_compile_optionsr�default_load_optionsro�	secondary�select_fromr`r8r�NO_AUTOFLUSH�
immutabledict�_execution_optionsr r�r��	load_pathr6�LoaderCriteriaOption�
_with_options�_path_registryr�r(rrer�r�load_on_pk_identityr�_order_by_clauses�_with_context_optionsr]�
EMPTY_DICT�
merge_withrkrlrr�has_intersection�	_none_set�values�
_never_set�_where_criteria�executerD�scalars�allrC�len�warn)rqr�r�rur�ryrprqrrrs�
clauseelement�stmtr�rtr �effective_pathr<r��lazy_clauserLr��lr�s`                     @r=rozLazyLoader._emit_lazyload�s���� �>�>�>�>�����6�6�8�
��(�(�'��*�;�;�7�,�D�D�	
��$�8�8���"'�!&�
�	
��
���)�)�5��#�#����T�1�1�;�;��D��i�i�-���g�
� 7� 7�7�&*�&8�&8�+�u�9M�&N�D�#��,�,�����'�g�.E�.E�'�/�!&����1E�1E�!F��!9�$�:N�:N�!O���%�%�D��7�2�2�����1�1�$�+�+�~�N����"&�D��
%�
-�#�\�\�8�8��9M�9M�N�N�6�d�6J�6J�K�N�����-�/�����/�>�!B�B����!�!�'�K�4H�4H�*H��'�'��w��G��.�.���$�)�"3��
��>�>�%)�^�^�D�"�
	K�	
�"�"�
�� 4� 4�5�'
�	
�"�#�8�8���H���V�� $��� :� :�!�*�L��!��'��!��

�H�H��
�
�"��k�?�?�?�'�4�4�4���$�$�X�%7�%7�����I��
�
"�
"�8�#6�#6��
�
��
H�����g��0D�0D�&D��#�#�E�7�N�C� +�~�������&�,=�!�
������(�(�*�.�.�0���<�<��M��F��A���q�5��I�I�J��.�.�/���a�y� �r?c	���|j�|jjrd|jjj
rD|j|jjj
vr|j
||||||||�S|jr|rw|jrktj|jt�|||jr|j|�nd���}	|dj|j|	f�y|js|j r&�fd�}
|dj|j|
f�yy)Nr�c�*��|j|��yr5)�_reset)r�rrr8s   �r=�reset_for_lazy_callablez@LazyLoader.create_row_processor.<locals>.reset_for_lazy_callable�s������U�C�(r?)r8r��_is_user_refreshrr�r�r	r�r�r#�"_instance_level_callable_processorrY�LoadLazyAttribute�_generate_extra_criteriarO�populate_existing�always_refresh)rqr�rwrxryr`r�rzr��set_lazy_callabler�r8s           @r=r�zLazyLoader.create_row_processor�s8����h�h��
� � �1�1��
�
�.�.�?�?����G�M�M�:�:�K�K�K��;�;���������	�	
��"�"�w�7�3J�3J��@�@��$�$�!����#�2�2� �8�8��A�!�	��!��"
�u��$�$�d�h�h�0A�%B�C�
�
&�
&�&�*?�*?�	
)�
�u��$�$�d�h�h�0G�%H�I�+@r?)rQr)rrzTuple[Any, ...])r�r�r�r�r��__annotations__rnr�rQr]r�rr�r�rg�preload_moduleror�r�r�s@r=rr�s�����
�I� $�#�/�/�'�'�3�3�.�.�:�/�:�?N�:�x 
�D!�@!�@
����!%��/�/�u
�n

��T���:�;�[�<�[�zEJr?rc�:�eZdZdZd�Zd�Zejfd�Zy)r�a�semi-serializable loader object used by LazyLoader

    Historically, this object would be carried along with instances that
    needed to run lazyloaders, so it had to be serializable to support
    cached instances.

    this is no longer a general requirement, and the case where this object
    is used is exactly the case where we can't really serialize easily,
    which is when extra criteria in the loader option is present.

    We can't reliably serialize that as it refers to mapped entities and
    AliasedClass objects that are local to the current process, which would
    need to be matched up on deserialize e.g. the sqlalchemy.ext.serializer
    approach.

    c�P�||_|j|_||_||_yr5�r8rrryrp)rqr8�initiating_strategyryrps     r=rnzLoadLazyAttribute.__init__�s&�����/�<�<������,��r?c��|j�tjd�|j|j|j
dd�S)NzvCan't reliably serialize a lazyload() option that contains additional criteria; please use eager loading for this caser�r�)rprr�r8rrry)rqs r=�__getstate__zLoadLazyAttribute.__getstate__�sE�����*��I�I� �
��8�8� �-�-��|�|� �	
�	
r?c���|j}|jj}|j|}|j|j
}|j
|||j|j��S)N)ryrp)	r8r�r`rW�_strategiesrrr�ryrp)rqr�r�r8ryr:r�s       r=r�zLoadLazyAttribute.__call__�sn���h�h���-�-�.�.���%�%�c�*���#�#�D�$5�$5�6���'�'����L�L��.�.�	(�
�	
r?N)	r�r�r�r�rnr�rrr�r�r?r=r�r��s!���"-�
�'1�&<�&<�
r?r�c��eZdZdZdZdd�Zy)�
PostLoaderz;A relationship loader that emits a second SELECT statement.r�Nc��|jjxstjj|z}|j�}t
jd|i�}|r"|jjdd�}|dk(}	nd}d}	|��|jjs#tjd|j�d���|jjdt|���|�}|	s|dkr|d||fS|	s"|j!dt|���|d	z
i�}t"j$j'|||j�r|d||fS||j}
||j}|
j)|j*d
�s;|r|j,dz|kDr'|d||fS|j/|j0�r|d||fS|d||fS)
N�sa_top_level_orm_context�recursion_depth���Fz'recursion_depth option on relationship z0 not valid for non-self-referential relationship�_recursion_depth_rr
�loaderr'T)rv�current_pathr6�PathRegistry�root�_get_top_level_contextrr�r�rXro�_is_self_referentialr�r�rs�id�unionr�PostLoad�path_exists�containsr�length�contains_mapperr`)rqr�rxry�
join_depthr��top_level_contextrsr��unlimited_recursion�path_w_prop�effective_path_w_props            r=�_setup_for_recursionzPostLoader._setup_for_recursions���!�!�.�.�L�(�2G�2G�2L�2L����$�:�:�<�� �.�.�
'�):�;�
���%�0�0�4�4�5F��M�O�"1�R�"7��"�O�"'���&��'�'�<�<��0�0�=��+�+�,�-8�8���
&�7�7�;�;�#�B�t�H�:�.���O�'�?�Q�+>�"��%�#�	��'�$5�$;�$;�+�B�t�H�:�6��!�8K��%�!����'�'��^�T�%9�%9�
�"�5�*;�_�L�L��4�/�/�0�� .�t�/C�/C� D���#�#�G�$6�$6��A��(�/�/�!�3�j�@�&��)�'�	��'�6�6�t�{�{�C�"��%�#�	���t�%6��G�Gr?r5)r�r�r�r�r�r�r�r?r=r�r�s��E��I�DHr?r�rc�4��eZdZdZ�fd�Zd�Zd�Zd�Z�xZS)�ImmediateLoader�r�c�\��t�|�||�|jj|_yr5�rmrnror�rps   �r=rnzImmediateLoader.__init__W�%���
�����.��.�.�9�9��r?c�X�|jjd�j|�y�N�)r�r�ror�r�r�s  r=r�z$ImmediateLoader.init_class_attribute[�$�����*�*�!�	
�
�
�v�
&r?c	��|jjjsy|j||||j�\}	}
}}|
s"t
jtjz}
n!t
jtjz}
tjj||	|j|j|j||
||�	yr5)rvr��_enable_eagerloadsr�r�r�PASSIVE_NO_FETCH_RELATEDrrerrr��callable_for_pathrQro�_load_for_path)rqr�rwrxryr`r�rzr�r��
run_loaderrsr��flagss              r=r�z$ImmediateLoader.create_row_processor`s����$�$�4�4�G�G��
�%�%�g�t�W�d�o�o�N�	
������
�7�7�+�:N�:N�N�E��*�*�[�-A�-A�A�E����*�*����K�K�� � ��������
	
r?c	���|rJt|jj�}	||j�f|	_|j�}
|	f}nd}	|}
d}|j}|jjd�}
|D]i\}}|j}|s||vs�|
j||||
|��}|ttjfvs�H|j|�j|||��ky)Nr�r�)rqrrrs)r$rxr�_recurser��_truncate_recursiver8ror�rkr�rrr��get_impl�set_committed_value)rqr�rx�states�	load_onlyryr�r�rs�new_optrrrqr8�
lazyloaderr��	overwriterrJs                  r=r�zImmediateLoader._load_for_path�s�����7�<�<�.�.�/�G��� � �"��G�O�(,�'?�'?�'A�$�$�J�M��G�'+�$��M��h�h���)�)�7�7�8M�N�
� &��E�9��J�J�E��C�u�,�"�2�2���"/�-E�&7�3���� �(�:�:�!���N�N�3�'�;�;��u�e��!'r?)	r�r�r�r�rnr�r�r�r�r�s@r=r�r�Ss����I�:�'�
(
�T+r?r��subqueryc�x��eZdZdZ�fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZGd
�d�Zd�Z
d
�Zd�Zd�Z�xZS)�SubqueryLoaderr�c�\��t�|�||�|jj|_yr5r�rps   �r=rnzSubqueryLoader.__init__�r�r?c�X�|jjd�j|�yr�r�r�s  r=r�z#SubqueryLoader.init_class_attribute�r�r?c�v�|}|j}tj|d�}|jj	|�r*|j
|dur|j|j
}}n||d}}|rf|j|jj|}	t|�t|	�z
}
|
r)|	tjj||
d�z
}	n|}	|j}|D�cgc]<}t|	jdj|j |j"���>}
}||
||	fScc}w)Nrr
)rxr6�_class_to_mapperrQ�isaro�	_entities�entity_zeror�r�rr��coerce�
local_columns�getattrrr�r8)rq�orig_query_entity_index�	subq_path�current_compile_state�is_root�given_subq_path�subq_mapper�leftmost_mapper�
leftmost_prop�
new_subq_path�
additional�
leftmost_colsr}�
leftmost_attrs              r=�
_get_leftmostzSubqueryLoader._get_leftmost�sN��$���N�N�	��/�/�	�!��=��
�K�K�O�O�K�(��$�$�	�!��4�-1�[�[�$�:N�:N�]�O�-8�)�A�,�]�O��2�;�;�'���k�.�.��8�M��Y��#�m�*<�<�J����!;�!;�!B�!B��z�k�l�+�"��
�,�M�%�3�3�
�#�
�
#��	
��"�"�1�%�,�,��1�1�!�4�8�8�
�#�	�
��
�}�m�K�K��
s�-AD6c	��|j�jd�}tjj	tj�}|j
j
|j
�|}|jsEd|_|jj|gt||��D�	chc]}	|	d�|	d��c}	���|j|D�
cgc]:}
tjjtj j"|
���<c}
|j%��}||_|j(}|durd|_nN|�L|D�
chc]}
|
j,��c}
D]/}t/|�j1|j2�r�(d|_n|j4sd|_|j*durB|j6r6t9j:||j6�}|r|j=||z�|j?t@�jC�}tEjF||d��}|Scc}	wcc}
wcc}
w)NF)rvrTr���use_mapper_path)$�_clone�	correlater�Query�__new__�__dict__�update�	_from_obj�_enable_assertionsr��non_generativer�_adapt_col_listr+�	coercions�expect�roles�ColumnsClauseRole�_get_current_adapterr}�distinct_target_key�	_distinct�tabler�rjr��_has_row_limiting_clauser�r5� expand_column_list_from_order_by�
_set_entities�set_label_styler-r�r6r&)rq�orig_compile_state�
orig_queryrr�leftmost_relationship�orig_entity�q�q2�entr\�target_colsr*r}�t�to_add�embed_q�
left_aliass                  r=�_generate_from_original_queryz,SubqueryLoader._generate_from_original_query�s"��
����)�)�$�/���[�[�
 �
 ����
-��
�����1�:�:�&����{�{�#(�A� �(�A�M�M�(�(��	
� 4�"�2D� �� ���8�}�0�	��M� ��	
�0)�8�8�'�
�&�A��
�
�$�$�S�Y�Y�%@�%@�!�D�&�
�
�3�3�5�
��%���3�G�G���$�&��A�K�
 �
(�(3�3�{�!�a�g�g�{�3���;�'�2�2�1�=�=�A�"&�A�K��4��)�)�"$�A���;�;�$��1�#6�#6��>�>��Q�0�0��F������f� 4�5��#�#�$B�C�L�L�N���*�*��W�d�
�
����A��.
��4s�.H6
�?H;�Ic�n�g}t|j��}t|�D]W\}\}}|dkDr+||dz
dj}|j	|�r|n|}	n|}	|j|	|jf��Yt|�dkr|}
nKt|dd�}|jr
|j}
n!tj|jd��}
|jj}|D�
cgc]/}
t|
|j j"|
j���1}}
|||
fScc}
w)Nrr
r'r�Tr)r;�pairs�	enumerater`rrOr8r�r)r!rr6r&ror	r
rQr�)rqr<r�to_joinr?�ir`r:�prev_mapper�	to_append�parent_aliasr8�
local_colsr}�
local_attrs               r=�_prep_for_joinszSubqueryLoader._prep_for_joins[s5�����Y�_�_�&�'��!*�5�!1��A�~����1�u�$�A��E�l�1�o�4�4��+6�?�?�6�+B�K��	�"�	��N�N�I�t�x�x�0�1�"2�&�w�<�!��&�L��7�2�;�q�>�*�D��$�$�#�{�{�� (�4�4��K�K�� ���)�)�7�7�
� �
���
�L�$�+�+�"?�"?��"B�"F�"F�G��	�
��
�L�0�0��	
s�74D2c�d�t|�}|dk(r$t||dd�j|�g}�n^|dk(rDt||dd�j|�t||dd�j|�g}�n|dkD�r|ddD�cgc]F}t|d�jstj|d�n|dj|df��H}}g}	|rb|jd�}t|d|d�}
|r|
j|dd�}
n|
j|�}
|	j|
�|r�bt||dd�j|	dj�g|	zt||dd�j|�gz}|D]}
|j|
�}�|Scc}w)Nr
rr'r�)r�r
�of_typer)r!r6r&r�poprOrQ�join)rqr5rAr<rE�effective_entity�ltj�item�middle�inner�attrs           r=�_apply_joinszSubqueryLoader._apply_joins�s����'�l���!�8��
�G�A�J�q�M�2�:�:�;K�L��G��A�X��
�G�A�J�q�M�2�:�:�<�H���g�b�k�!�n�5�=�=�$���G��1�W�$�A�b�M�
�*�D� '�t�A�w�/�@�@�!�-�-�d�1�g�6�!�!�W�^�^���G�
�*�
�
��E���z�z�!�}���t�A�w��Q��0����<�<��q�	�!��5�D��<�<��5�D����T�"����W�Q�Z��]�3�;�;�E�!�H�O�O�L�M����L�'�"�+�a�.�9�A�A�(����
��D����t��A�����I
s�AF-c���|j}|r?|jr3|tj|j|j|��fz
}|j
|�}|j|�}|Sr5)r�r�r6r�rr��_with_current_path�options)	rqr�r5r�rewritten_pathr2rMry�new_optionss	         r=�_setup_optionszSubqueryLoader._setup_options�ss��"!�.�.���w�.�.���-�-��K�K��4�4�W�=���
�K�
� � ��0���A�I�I�{�#���r?c�v���jjr!�fd�}|j|�j�}|S)Nc���|xjttj�jj
��z
c_yr5��eager_order_by�tuplerr4ror3�r�rqs �r=�_setup_outermost_orderbyzISubqueryLoader._setup_outermost_orderby.<locals>._setup_outermost_orderby�s3����.�.�%��L�L��!5�!5�!>�!>�?�3��.r?)ror3�_add_context_option)rqr5r`s`  r=r`z'SubqueryLoader._setup_outermost_orderby�s;������(�(�
�
�%�%�(�$�*>�*>��A��r?c�,�eZdZdZdZd�Zd�Zd�Zd�Zy)�SubqueryLoader._SubqCollectionsz�Given a :class:`_query.Query` used to emit the "subquery load",
        provide a load interface that executes the query at the
        first moment a value is needed.

        �r�rsr�rL�subq�_datac��|j|_|j|_|j|_|jxsi|_||_d|_yr5rd)rqr�res   r=rnz(SubqueryLoader._SubqCollections.__init__sI��#�?�?�D�L�%,�%>�%>�D�"� '� 4� 4�D��!�.�.�.�B�D�K��D�I��D�Jr?c�r�|j�|j�|jj||�Sr5)rf�_loadrX)rqr8�defaults   r=rXz#SubqueryLoader._SubqCollections.get
s*���z�z�!��
�
���:�:�>�>�#�w�/�/r?c���tjt�|_|j}|j
�J�|j
|j
�}|jjr|j�}t|j|j��}tj|d��D]*\}}|j|jd�|D���,y)Nc��|ddS)Nr
r���xs r=r>z7SubqueryLoader._SubqCollections._load.<locals>.<lambda>s
��!�A�B�%r?c3�&K�|]	}|d���y�w)rNr��r��vvs  r=r�z8SubqueryLoader._SubqCollections._load.<locals>.<genexpr>s����$7�Q�r�R��U�Q���)�collections�defaultdictr;rfrer��with_sessionr��_populate_existingr�rL�	itertools�groupby�extend)rqr5�rowsr��vs     r=riz%SubqueryLoader._SubqCollections._loads���$�0�0��6�D�J��	�	�A��9�9�$�$�$����t�|�|�,�A�� � �3�3��'�'�)���������-�.�D�!�)�)�$��@���1��
�
�1�
�$�$�$7�Q�$7�7�Ar?c�>�|j�|j�yyr5)rfri)rqr�rrs    r=r�z&SubqueryLoader._SubqCollections.loader s���z�z�!��
�
��"r?N)	r�r�r�r�r�rnrXrir�r�r?r=�_SubqCollectionsrc�s"��	�
�	�	�	0�
	8�"	r?r}c	�z�|j}|jjr|jjry|jj|�}d|_||j}|j|jdd�}	|	�|	}
n|j}
|jjjdtjjtjjf�\}}|tjju}
||z}||z}|jjjdt f|j�}t#j$|d�}|j&r>|j(j*�t-j.d|�d|�d��|j0}|j3|d	�
�}|j5||||
�\}}}}|j7||||||�}tj8|
�}|jjj;|j<dt f|d||fi�|_|j?d	�}|jA||�\}}}|jB|�}|jE|||||
�}|jG||||||
|�}|jI|�}|S)NT�path_with_polymorphic)�subquery_pathsNr2�ormzsubqueryloader for "z!" must invoke lambda callable at z� in order to produce a new query, decreasing the efficiency of caching for this statement.  Consider using selectinload() for more effective full-lambda cachingF)�legacy)%rvr�r��_for_refresh_stater�index�loaders_require_bufferingrorXrrrr�r6r�r�rr�_get_plugin_class_for_plugin�_is_lambda_elementr�r�rr��	_resolved�_create_entities_collectionrr=rr�rs�_set_enable_single_critrH�add_columnsrSrYr`)rqr�rwrxrryrzrvr�with_poly_entityrMrrWrr2�compile_state_clsr1rrr3r<r5rArGrEs                         r=�_setup_query_from_rowprocz(SubqueryLoader._setup_query_from_rowproc$s��� �-�-�
��-�-�@�@��,�,�?�?��"/�"9�"9�"?�"?��"M��,0��)��D�(�(�)�� �8�8��$�$�&=�t�
���'�/��#�{�{��$+�M�M�$D�$D�$H�$H�$�
�
"�
"�
'�
'��)>�)>�)C�)C�D�%
�!�	�>��x�4�4�9�9�9����$�	�'�$�.���]�]�5�5�9�9�
�>�*�G�M�M�
�
�,�H�H���
���(�(��#�#�5�5�=��	�	��Z�)��$�-�-�J�
/�J�J��u�K�
��
���#����	
�	
���!���7�7�����!��

�
�
�K�K�(�)��&�}�}�?�?�J�J��%�%��~�.�
�(�9�n�*E�
� 
���
�%�%�e�,��,0�,@�,@��	�-
�)���\�
�A�M�M�:�&�����
�w�
�L�2B�
��
����
������
��
�)�)�!�,���r?c	
��|rL|jj�6|jjjrtjdd�|j
r|j
||||||||�S|j||||j�\}	}
}	}	|
syt|jt�sy|jj|jjjst!j"d|z��t%|�dk(r+t'j(|j*|j�s%yt'j(|d|j�sy|j-||||d||�}|�y|j.�J�||j0}|j0j2}|j5|j6d�}
|
�/|j9||�}
|j;|j6d|
�|r|D�cgc]}|j<|��}}|j>r|jA|||
||�y|jC|||
||�ycc}w)Nz�The subqueryload loader option is not compatible with DML statements such as INSERT, UPDATE.  Only SELECT may be used.This warning will become an exception in a future release.�2.0�J'%s' does not support object population - eager loading cannot be applied.r
r�rs)"rv�	statement�is_dmlr�warn_deprecatedr�r	r�r�r�rrQrYr8�impl�supports_populationr�r�r�r6�_entity_isarr�r�ror	rXrr}r�rkrC�_create_collection_loader�_create_scalar_loader)rqr�rwrxryr`r�rzr��_r�rerFrsr}s               r=r�z#SubqueryLoader.create_row_processor�sT��
��%�%�/�/�;��%�%�/�/�6�6�� � �M��	
�� � ��;�;���������	�	
�#�7�7��T�7�D�O�O�
���:�q�!����'�/�/�1F�G�
��{�{�(�(����2�7�7�K�K��,�,�@�BF�G��
��t�9��>��'�'��(@�(@�$�+�+�N���%�%�d�2�h����<���-�-������H���

���<���|�|�#�#�#��D�(�(�)���)�)�7�7�
�
�h�h�w�1�1�=�A�����/�/���>�K��H�H�W�'�'���D��6@�A�j��'�/�/�!�,�j�J�A��<�<��*�*����j�*�
�
�&�&����j�*�
��Bs�Ic�6�����|j|�����fd����fd�}|dj�j�f�|dj�j|f�|jr+|dj�j�jf�yy)Nc����j�|�d�}|j�j�j|||�y)Nr�)rXr�r8r�)r�rr�
collectionrsrq�tuple_getters    ���r=�load_collection_from_subqzKSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subqs<���(�����c�):�B�?�J��N�N�4�8�8�$�8�8��u�j�
r?c�8���j|vr�|||�yyr5�r8)r�rrr�rqs   ��r=�&load_collection_from_subq_existing_rowzXSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq_existing_rows ����x�x�u�$�)�%���<�%r?r��existing�eager��
_tuple_getterrOr8�invoke_all_eagersr�)	rqr�r�rsrFr�r�r�r�s	`  `   @@r=r�z(SubqueryLoader._create_collection_loaders�����+�+�J�7��	�	=�	�5�� � �$�(�(�,E�!F�G��:��%�%�
�X�X�=�>�	
��$�$��w��&�&����+�2D�2D�'E�F�%r?c�6�����|j|�����fd����fd�}|dj�j�f�|dj�j|f�|jr+|dj�j�jf�yy)Nc�����j�|�d�}t|�dkDrtjd�z�|d}|j	�j
�j
|||�y)Nr5r
�LMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' r)rXr�rr�r�r8r�)r�rrr��scalarrsrqr�s     ���r=�load_scalar_from_subqzCSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq-sk���(�����c�):�G�D�J��:���"��	�	�G�IM�N��
 ��]�F��N�N�4�8�8�$�8�8���v�Nr?c�8���j|vr�|||�yyr5r�)r�rrr�rqs   ��r=�"load_scalar_from_subq_existing_rowzPSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq_existing_row8s ����x�x�u�$�%�e�U�C�8�%r?r�r�r�r�)	rqr�r�rsrFr�r�r�r�s	`  `   @@r=r�z$SubqueryLoader._create_scalar_loader(s�����+�+�J�7��		O�	9�	�5�� � �$�(�(�,A�!B�C��:��%�%�
�X�X�9�:�	
��$�$��w��&�&����+�2D�2D�'E�F�%r?)r�r�r�r�rnr�rr=rHrSrYr`r}r�r�r�r�r�r�s@r=rr�s^��� �I�:�'�
/L�bb�H-1�^4�l �D�2�2�hF�Pc�JG�.Gr?r�joinedc�~��eZdZdZdZ�fd�Zd�Z			dd�Zd�Zd�Z	d�Z
d	�Z		d			dd
�Zd�Z
d�Zd
�Zd�Z�xZS)�JoinedLoaderz[Provide loading behavior for a :class:`.Relationship`
    using joined eager loading.

    r�c�\��t�|�||�|jj|_yr5r�rps   �r=rnzJoinedLoader.__init__Or�r?c�X�|jjd�j|�yr�r�r�s  r=r�z!JoinedLoader.init_class_attributeSr�r?c	�<�|jjsy|r9|j�-|jjrt	j
dd�n|jrd|_||j}d}
|r|j|||j�nd}|dur|j|||||�\}}}
n�|j|jd�sE|jr|jdz|jkDry|j|j �ry|j#||||||||�\}}}
}d|_|j'|jdd�}|�t)|�j*}
nd}
||j,}t/j0||j ||||
|
|j |�	�	tj2j5|j6�}|r:|�t9j:d
��|j6D�cgc]}|��|��	c}|_yycc}w)z@Add a left outer join to the statement that's being constructed.Nz�The joinedload loader option is not compatible with DML statements such as INSERT, UPDATE.  Only SELECT may be used.This warning will become an exception in a future release.r�TFr�r'r)�with_polymorphic�parentmapper�chained_from_outerjoinz�Detected unaliased columns when generating joined load.  Make sure to use aliased=True or flat=True when using joined loading with with_polymorphic().)r�r�r�r�rr�rC�multi_row_eager_loadersro�_init_user_defined_eager_procr�$_setup_query_on_user_defined_adapterr�r�r�r�r`�_generate_row_adapter�eager_adding_joinsrXr)�with_polymorphic_mappersrr�_setup_entity_query�NONE_SETr��secondary_columnsr�r�)rqrvrwrxryrzr{r�r�r|r��user_defined_adapter�clauses�add_to_collectionr��	has_nonesr}s                 r=r~zJoinedLoader.setup_queryXsV���,�,�?�?����'�'�3��'�'�.�.�� � �M��	
��\�\�48�M�1��D�(�(�)�����
�.�.���
�(@�(@�
��	� �u�,��9�9�����$��	
���!� �=�=��!9�!9�8�D��?�?��{�{�Q�����8���)�)�$�+�+�6���*�*������!��&�	�
���!�&�04�M�,��8�8��$�$�&=�t�
���'�&� � �&�&�
� $���D�K�K� ���#�#���K�K�����-����#9�
	
��M�M�.�.�}�/N�/N�O�	���+��0�0�I��� -�>�>�3�>�!�!�-�A�>�3�
�/���3s�H�Hc�,�d|jvry|jj}|j|jdd�}|dur|S|jd}|dd\}}|�|t|t�r|jj|�}tjtjj|j||jjd��}n�|j|jd�ra|j|jd�}	tjtjj |	|jj��}n&|j"j|jd�}|j%|d|�|S)N�eager_from_aliasF� user_defined_eager_row_processor���)�
selectabler0�limit_on_entityr)r0)r�rxrQrXrr�rr�aliasr6�
ORMAdapter�_TraceAdaptRole�JOINEDLOAD_USER_DEFINED_ALIASr`r:r�� JOINEDLOAD_PATH_WITH_POLYMORPHIC�_polymorphic_adaptersr�)
rqryrv�target_attributesrxrzr��root_mapperr:r�s
          r=r�z*JoinedLoader._init_user_defined_eager_proc�sx���W�%7�%7�7���|�|�"�"���(�(��$�$�&H�%�
���%���N��"�"�#5�6�� ���I���T����%��%����)�)�%�0���)�)��(�(�F�F���� � �K�K�;�;� %��G��}�}��(�(�*A��$(�8�8�!�,�,�.E�$� �#�-�-��,�,�M�M�$� $��� ?� ?���(�=�=�A�A��K�K����	
����.��	
��r?c���|j|�}|r1|r/|j|�}|j|jd|�n!|r|}|j|jd|�|j}|||fS)Nr�)�_get_entity_clauses�wrapr�r�primary_columns)rqr�rrxrzr�r�s       r=r�z1JoinedLoader._setup_query_on_user_defined_adapter	s���
�,�,�W�5���+�#7�#<�#<�W�#E� ��H�H��"�"�2�$�
�
�#*� ��H�H��"�"�2�$�
�$�3�3��#�W�.?�?�?r?c	�^�|j|jdd�}	|	r|	}
ngt|j�}|jr
|j
}nd}t
j|j|�|jd��nddd��}
t|
�}
|
jd|ftjtjj|
|jjddd��}|jsJ�|�0|jjd|j j"�n|j j"}|sd}|j$j'|j(||||||||r|j*nd	f	�|j,}|j/|jd
|�||||fS)NrT)�flat)r�r�r�joinedloader_ormadapterF)r0�adapt_required�allow_label_resolve�anonymize_labels�	innerjoinr��eager_row_processor)rXrr)rr!r�r6r&r`�_anonymous_fromclause�_memor�r��JOINEDLOAD_MEMOIZED_ADAPTERr:r�ror��create_eager_joinsrO�_create_eager_joinr�r�r�)rqrvrrxryrzr{r�r�r��to_adapt�insp�alt_selectable�
to_adapt_inspr�r�r�s                 r=r�z"JoinedLoader._generate_row_adapter,	s��� �8�8��$�$�&=�t�
���'�H��4�;�;�'�D��$�$�!%����!%���,�,����&�1�#�8�8�d�8�C��� $�	�H� ��)�
��%�%�
&��-�����$�$�@�@�����7�7�� %�!�&�	
���'�'�'�'��"�
���"�"�;��0D�0D�0N�0N�O��%�%�/�/�	��&*�"��(�(�/�/��'�'�������&�+2��'�'��

�	
�*�;�;������)�)�+@�'�J���!2�4J�J�Jr?c
	���|�
|j}
n|}
|jxr|j}d}||jvrv|st|jrhtj|j|j�}
t|
�dkDrtjd��|
r|j|
d}|
d|}}|�||j}}|jj|�}|r�t|dd�rn|jj|
j�j �r|
n�j �}t|j"�j$�j&�}nXtt)j*�j |jd���j$�j&�}n�j&}|j,sJ�|xs"|xs|dk(xs|j.j0}|	}|j2j5d	�jfd
�}|r|t7�fd�|D��z
}|rwt)j8||j||xs6|j.j0xs|xrt;|t<j>��j |�j|��}n�jA||d
||||�}||j|<|j|_!|s�tjD�j&jF�D]U}|
jHjJjM|�s�)|r|jN|}|jQ||jR��W�j&jTr_|xjVt7|jXj[t]j^�j&jT���z
c_+yy)Nr
z�Can't identify which query entity in which to joined eager load from.   Please use an exact match when specifying the join path.rr!FTr�unnested�additional_entity_criteriar�c3�l�K�|]+}|jr|j�j����-y�wr5)�propagate_to_loaders�_resolve_where_criteriar`)r��aerqs  �r=r�z2JoinedLoader._create_eager_join.<locals>.<genexpr>�	s1�����)�4�B��*�*��*�*�4�;�;�7�4�s�14��isouter�
_left_memo�_right_memor�r�)0r`r��_should_nest_selectable�eager_joins�from_clausesr5�#find_left_clause_that_matches_givenr�r�r�r��
setdefaultr
�aliased_insp�_entity_for_mapperrrQrr8ror6r&r!r�represents_outer_join�global_attributesrXr^�_ORMJoinr�r+�Join�_splice_nested_inner_join�stop_on�
_find_columns�primaryjoin�persist_selectabler}�contains_columnrkrur�r3r]�_target_adapter�copy_and_processrr4)rqrvrwrxrzr�r�r�r�rpr��should_nest_selectable�query_entity_key�indexes�clause�default_towrap�towrap�efm�onclause�attach_on_outside�extra_join_criteriar��	eagerjoinr�s`                       r=r�zJoinedLoader._create_eager_join{	s������&�-�-�K�&�K�
�1�1�
6��5�5�	�
 ��
�
� 9� 9�9�*��*�*��B�B��*�*�L�,C�,C��G��7�|�a���0�0�0����&�3�3�G�A�J�?��
4;�1�:�v�.� ��#���'�'�-��
�*�*�5�5��n�
����w� 2�E�:�
�*�*�=�=�"���t�{�{�3� ������#�3�:�:�t�x�x��9M�9M�N��"��)�)����W�%7�%7����H�H��(�(����+�+�H��'�'�'�'�'�&�
>��}�
>��J�&�
>��'�'�=�=�		�-��%2�%D�%D�%H�%H�
)�4�;�;�7��&
�"�&��5�)�4�)�$�
��� �)�)���$�$��%�
�M��+�+�A�A�M�*�K�z�&�#�(�(�/K��;�;� ����-� 3�
�I��6�6��d�2�h����;N��I�7@�
�!�!�"2�3�)�3�3�	��� �-�-��$�$�0�0����1�1�3�3�C�C�C�H��%�o�o�c�2��!�?�?��]�:�:��
����(�(��(�(�E��*�*�;�;��L�L��!5�!5�!>�!>�?��-�
�(�)r?c	
��||dusJ�|durt|tj�sJ�t|tjj
�r!|j
|||j||||�St|tj��rQ|j}	|j
|||j||||	�|	djnd��}
|
�|js|
js|j|
�}nBtj|j|
|j|j|j��}|
j |_|S|j
|||j||||j|	��}
|
�Utj|
|j|j|j|j��}|
j |_|S|dur	Jd��y|j#|�sy|r-t%|�d	kDr|d
|usJ�|dd|j&ddk7rytj||j(|d|||dj|��S)
Nr�Fr�)�entity_inside_join_structure)r�r�)r�detected_existing_path)r�r�z9assertion failed attempting to produce joined eager loadsr'���rr�)r�r6r�r+r��FromGroupingr��elementr��rightr`r��_splice_into_center�leftr
r�rrr�rxr�)rqrx�entity_we_want_to_splice_onto�join_objr�r
rprr�join_right_path�target_joinrs            r=r�z&JoinedLoader._splice_nested_inner_join
s���*-��R��8�8�8�'�5�0��h��(9�(9�:�:�:��h���� ;� ;�<��1�1��-�� � ����,��
���(�"3�"3�
4�'�2�2�O��8�8��-�������'�2�$�B�'�.�.��9��K��&� �'�'��0C�0C� (� <� <�[� I�I� (� 1� 1� �
�
�#� �)�)� (� 0� 0�#+�#6�#6�!�I�-8�,G�,G�	�)� � �#�<�<��1��M�M���"�19�1D�1D�+:�=�	���*� (� 1� 1�#� ��� �)�)� (� 0� 0�$,�$8�$8�!�I�1<�0K�0K�I�-�$�$�,�u�4��O�N�O���-�0�0�1M�N��"�c�*@�&A�A�&E�
*�"�-�1M�M�M�M�H&�a��+�t�y�y��2��>��� � ��� � ���3��T�"�X�_�_�-�*�
�	
r?c�j�|j}|r|j|||j�nd}|durE|}|jr|r|j	|j�}n8|jr,|j}n|j|jd�}|�y|jj||�r|Sy)NFr�)rvr�r�compound_eager_adapterr�rXr`�_result_has_identity_key)	rqr�r�rzrxryrvr��	decorators	         r=�_create_eager_adapterz"JoinedLoader._create_eager_adapter�
s����-�-�
��
�.�.����(:�(:�
��	� �u�,�,�I��3�3�	�%�N�N�!�8�8��	��5�5�)�@�@�	�����(�(�*?��I�� ���;�;�/�/��	�B���r?c	
��|jjjsy|jj|j
jjstjd|z��|jrd|_||j}	|j||||	|�}
|
durs|j
}tj||j |||	|j"|
�}|js|j%||||�y|j'||||�y|jj)d�j+||||||||�y)Nr�TFr�)rvr�r�rQrYr8r�r�r�r�rC�loaders_require_uniquingror"r�_instance_processorr`rr�r�r�r�)
rqr�rwrxryr`r�rzr��our_path�
eager_adapterr8�	_instances
             r=r�z!JoinedLoader.create_row_processor�
sN���$�$�4�4�G�G���{�{�(�(����2�7�7�K�K��,�,�@�BF�G��
�
�<�<�/3�G�,���,�,�-���2�2��V�W�h��
�
���%��(�(�C��3�3�����������%��
�I��<�<��*�*�7�C��J�O��.�.��S�)�Z��
� � �.�.�%�
�"�"���������	r?c�
�������fd�}���fd�}�fd�}|dj|j|f�|dj|j|f��jr!|dj|j|f�yy)Nc���tj||��}tj|d�}|�j|�f<�|�}|�|j	|�yy�N�append_without_event�rrr�UniqueAppenderrO)	r�rrr��result_list�instr(r�r8s	      ���r=�#load_collection_from_joined_new_rowzSJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_new_row*sg���$�9�9�%���L�J��-�-��2��K�0;�G����s�|�,��S�>�D����"�"�4�(� r?c���|�f�jvr�j|�f}n>tj||��}tj|d�}|�j|�f<�|�}|�|j	|�yyr+r-)	r�rrr/r�r0r(r�r8s	      ���r=�(load_collection_from_joined_existing_rowzXJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_existing_row7s�����s�|�w�1�1�1�%�0�0�%���>��(�=�=��5�#��
�#�1�1�� 6���4?��"�"�E�3�<�0��S�>�D����"�"�4�(� r?c����|�yr5r��r�rrr(s   �r=� load_collection_from_joined_execzPJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_execJ�
����c�Nr?r�r�r��rOr8r�)rqr�r8r(r�r1r3r6s ```    r=r�z&JoinedLoader._create_collection_loader)s����	)�	)�&	�	�5�� � �
�X�X�:�;�	
�	�:��%�%�
�X�X�?�@�	
��$�$��w��&�&����;�<�
�%r?c�������fd�}���fd�}�fd�}|dj�j|f�|dj�j|f�|jr!|dj�j|f�yy)Nc����|�|�<yr5r�)r�rrr(r8s   ��r=�load_scalar_from_joined_new_rowzKJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_new_rowYs���#�3��E�#�Jr?c�j���|�}�|vr!||�urtjd�z�yy||�<y)Nr�)rr�)r�rrr�r(r8rqs    ���r=�$load_scalar_from_joined_existing_rowzPJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_existing_row^sM���!��~�H��e�|��5��:�-��I�I�K����.�&��c�
r?c����|�yr5r�r5s   �r=�load_scalar_from_joined_execzHJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_execqr7r?r�r�r�r8)rqr�r8r(r�r;r=r?s` ``    r=r�z"JoinedLoader._create_scalar_loaderXs����	(�
	&�&	�	�5�� � �$�(�(�,K�!L�M��:��%�%�
�X�X�;�<�	
��$�$��w��&�&����7�8�
�%r?)NNF)FN)rz#Union[Mapper, None, Literal[False]]rz$Optional[path_registry.PathRegistry])r�r�r�r�r�rnr�r~r�r�r�r�r�r"r�r�r�r�r�s@r=r�r�Ds�����
�I�:�'���$�@�D7�r@�2MK�^]�R
�GK�k
�'
�k
�!E�k
�Z"�H<�|-�^#r?r��selectinc���eZdZdZej
dgd��ZdZ�fd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Z�xZS)�SelectInLoader)r��	omit_join�
_parent_alias�_query_info�_fallback_query_info�	queryinfo)�load_only_child�load_with_join�in_expr�pk_cols�zero_idx�child_lookup_colsi�c����t�|�||�|jj|_|jjt
ju}|jj�|jj|_n~|jjd�}|r|j|_nO|jjdj|jdd|jj��|_|jrC|r+|j�|_|j#�|_y|j'�|_y|j#�|_y)Nr�rTFr-)rmrnror�r]r
rArCr�r rQr9r�rr:�_init_for_omit_join_m2orE�_init_for_joinrF�_init_for_omit_join)rqrQrr�is_m2or�rss     �r=rnzSelectInLoader.__init__�s$���
�����.��.�.�9�9����%�%�/�/�:�3G�3G�G�����)�)�5�!�1�1�;�;�D�N��-�-�;�;�%��J��!+�!3�!3���!%���!8�!8��!;�!C�!C��-�-� $�!&� $��� ?� ?�	"D�"����>�>��#'�#?�#?�#A�� �,0�,?�,?�,A��)�#'�#;�#;�#=�� �#�2�2�4�D�r?c����t�jjj���j	��fd�t��D���jjD�cgc]}|�vs��|��c}x}}t|�dkDrtj|�}d}n|d}d}�jdd|||d�Scc}w)Nc3��K�|]6}�jjj|d�D]}|�|f���
�8y�w)r�N)rQr:rX)r�r��equiv�pk_to_fkrqs   ��r=r�z5SelectInLoader._init_for_omit_join.<locals>.<genexpr>�sF�����
�#�����8�8�<�<�Q��C���H�Q�K� �C�
!�#�s�<?r
FrT)rkror1�local_remote_pairsr r;rQr�r�r+�tuple_�
query_info)rqr�rK�fk_colsrJrLrVs`     @r=rQz"SelectInLoader._init_for_omit_join�s������ � �0�0�C�C�
��	���
��(�^�
�	
�&*�[�[�%<�%<�
�%<�c��x��H�S�M�%<�
�	
��'��w�<�!���j�j�'�*�G��H��a�j�G��H����u�e�W�g�x��N�N��
s�(	B>�2B>c�&�|jj}t|�dkDrtj|�}d}n|d}d}|j
j
d�}|D�cgc]}|j|��}}|jdd||||�Scc}w)Nr
FrTr�)	r`r�r�r+rXror�r#rY)rqrKrJrLr�r{�lookup_colss       r=rOz&SelectInLoader._init_for_omit_join_m2o�s����+�+�)�)���w�<�!���j�j�'�*�G��H��a�j�G��H��)�)�7�7�8M�N�
�AH�I��2�z�2�2�2�6���I�����%��'�8�[�
�	
��Js� Bc�b�t|jj�|_t	|j�}|jj
D�cgc]}|j
|���}}t|�dkDrtj|�}d}n|d}d}|jdd|||d�Scc}w)Nr
FrT)r&rQr\rDr)r��_adapt_elementr�r+rXrY)rq�pa_inspr�rKrJrLs      r=rPzSelectInLoader._init_for_join�s���)�$�+�+�*<�*<�=����$�,�,�-��37�;�;�3J�3J�
�3J�C�G�"�"�3�'�3J�	�
��w�<�!���j�j�'�*�G��H��a�j�G��H����u�d�G�W�h��M�M��
s�B,c�X�|jjd�j|�yr�r�r�s  r=r�z#SelectInLoader.init_class_attribute�r�r?c	�N�|jr|j||||||||�S|j||||j��\}	}
}}|
sy|jj
jsy|jj|jjjstjd|z��t|�dk(r+tj |j"|j�s%ytj |d|j�sy|	}
||j$}|j'|j(dd�}|�t+|�}n|j,}t.j0j3||
|j|j$|j4||||�	y)Nr�r�r
r�r)r�r	r�r�rvr�r�rQrYr8r�r�r�r�r�r6r�rrorXrr)rrr�r�r�)rqr�rwrxryr`r�rzr�r�r�rsr��
selectin_pathr�r�rMs                 r=r�z#SelectInLoader.create_row_processor�s���� � ��;�;���������	�	
� 
�%�%��T�7�t���
&�
�	
�����
���$�$�4�4�G�G���{�{�(�(����2�7�7�K�K��,�,�@�BF�G��
��t�9��>��'�'��(@�(@�$�+�+�N���%�%�d�2�h����<��&�
��4�/�/�0��'�?�?���� 7��
���'�&�'7�8��#�{�{�����*�*����K�K�� � ��������
	
r?c	�	��� �!�|r�j|vry�j}	|	jr�tjt
�}
g}�j� |D]�\�}�j�!t� ��!fd�|	jD��}
tj|
vr�j}	n2d|
vr|
|
j��!|f��n|j��!|f���|	js/|D��cgc]"\}}|jd||j|f��$}
}}|	j}|	j}|	j s;|j"r/|D�cgc]}|j%|���}}|j%|�}t'j(dg|���}|j+�}|j+�}t-j.||gt0t2j4d|d���}|	j s|j7|�}na|j7�j8�j;t=�j8�j>j�jA|��}|jC|jEtGjHd���}|jJjL}|�j>}||jNur
|jP}nP|jP}|jNjP}tS||�D��cgc]\}}|jU||���}}}|r5|jVr)|t'jX||j[|��fz
}|�|j]�}|j^|�}|jad|i�}|jbr|jed	�
�}�j>jfr}|	j sP�j>jf}|j"r|D�cgc]}|j%|���}}|jf|�}n!�fd�}|ji|�j>�}|	jr�jk
|	|||�y�jm
|	|||�ycc}}wcc}wcc}}wcc}w)Nc3�d�K�|]'}�j��|tj�����)y�w)rxN)rYr�PASSIVE_NO_FETCH)r��lkr`r��
state_dicts  ���r=r�z0SelectInLoader._load_for_path.<locals>.<genexpr>Vs?�����&�;��
�4�4��"�� *� ;� ;�	5��;�s�-0r
r{r�)�compile_state_plugin�plugin_subject)r}rr�r~�primary_keysr�T)r�c���|xjttj�jj
��z
c_yr5r\r_s �r=r`z?SelectInLoader._load_for_path.<locals>._setup_outermost_orderby�s3���#�2�2�e����T�%9�%9�%B�%B�C�7��2r?)7r8rErHrsrtr;rQrkr^rMrr�rFrOrKrJrIr!r^r6�Bundler�r.r�r-rr�r�rDrLr
rorJ�filter�in_r+rErv�select_statement�user_passed_queryr��zip�'_adapt_cached_option_to_uncached_optionr�r�r�r�rV�_update_compile_optionsr�rsr3ra�_load_via_child�_load_via_parent)"rqr�rxr�r�rMryr�rsrY�
our_states�none_statesr��
related_identr�rKrJr��
bundle_ent�
bundle_sql�
entity_sqlr5r2r�rX�cached_options�uncached_options�orig_opt�uncached_optr]r=r`r`rgs"`             `                 @@r=r�zSelectInLoader._load_for_path>s���������2���%�%�
��%�%�$�0�0��6�J��K��[�[�F�$*� ��y�"�Z�Z�
� %�&�)�:�:�&�!�
�(�9�9�]�J�!%�!:�!:�J���}�,��}�-�4�4��
�I�6�� �&�&��z�9�'E�F�7%+�<�)�)�)/��(.�$�E�9����1��u�e�j�j�)�<�(.�
��
�$�$���$�$���(�(� �0�0�DK��DK�S�$�3�3�C�8�G���+�9�9�'�B���_�_�T�4�G�4�
��2�2�4�
�%�8�8�:�
��%�%�$�j�1�7�,�D�D�(-�"2��	
���(�(��
�
�.�/�A�
�
�
�d�0�0�1�6�6���*�*�D�,@�,@�,D�,D�E�M�M�$���A�
�H�H�W�[�[����~�!>�?�@���*�*�;�;�
�2�d�2�2�3����2�2�2�$�2�2�K�'�5�5�N�&�8�8�F�F��/2�"�$4�/�	�/�*�H�l��@�@��\��/�	
���w�.�.���-�-�$��4�4�W�=���
�K��&�+�?�?�A�N��A�I�I�{�#��
�%�%���&G�H���$�$��#�#�d�#�;�A����(�(��,�,�!%�!5�!5�!>�!>��#�4�4�%3�&�$2�D�)�7�7��=�$2�#�&��A�J�J��/���
�)�)�,�d�.B�.B����%�%�� � ������!�

�
�!�!��J��7�4E�
��u�� ��d��<&s�,'Q2�
Q8�>Q=�.Rc	��|j}t|�}|r�|d|j}	||jd}|jj	|d|	D�
cgc]}
|j
r|
dn|
��c}
i|��j
�D��cic]\}}||��
}
}}|	D]d}
|
j|
d�}||
D]H\}}}|s|j|vr�|j|j�j|||s|n|g��J�f|r��|D]C\}}}|s|j|vr�|j|j�j||d��Eycc}
wcc}}w)Nrrj�rLrs)rC�sorted�
_chunksizer�r�rLrDrXr8r�r�)rqrvrwrYr5r�rsrC�our_keys�chunkr8r�r{�data�related_objr�rr�s                  r=rtzSelectInLoader._load_via_child
s����,�,���*�%����Q����1�E����� 1�2�H�$�O�O�3�3��&�',�)�',��'1�&9�&9�C��F�s�B�',�)��'8�4�	��&�(�	��	�D�A�q��1��	�
����#�h�h�s�D�1��/9�#��+�E�5�)�$����U�):� ��N�N�4�8�8�,�@�@���+2���
��	0?��#�D(3�#�E�5�)�����U�!2��
�N�N�4�8�8�$�8�8���t�L�
(3��5)��s�E
�
Ec
�B�|j}|rdnd}|�r�|d|j}||jd}|D�	�
��cgc]\}	}
}}|jr|	dn|	��}
}}
}	}tjt
�}t
j|jj|d|
i|��j�d��D] \}}||jd�|D���"|D]�\}	}
}}|s|j|vr�|j|	|�}|sX|rVt|�dkDrtj d|z�|
j#|j�j%|
||d���|
j#|j�j%|
||���|r���yycc}}}
}	w)	Nr�rrjr�c��|dSr�r�rms r=r>z1SelectInLoader._load_via_parent.<locals>.<lambda>^
s��!�A�$r?c3�&K�|]	}|d���y�w)r
Nr�rps  r=r�z2SelectInLoader._load_via_parent.<locals>.<genexpr>`
s����1�q��r�!�u�q�rrr
r�)rCr�rLrsrtr;rwrxr�r�rDryr8rXr�rr�r�r�)rqrvrYr5r�rsrC�
_empty_resultr�r8r�rgr�rjr�r�r{r�s                  r=ruzSelectInLoader._load_via_parentH
s����,�,��%��4�
���q�4�?�?�3�E�#�D�O�O�$5�6�J�:?��9>�5�C��
�I�%�-�-��A��3�6�9>�
��
�*�*�4�0�D�!�)�)����'�'��*�L�9�&7�(���&�(��
���1��Q����1�q�1�1��6;�1��U�J�	� �T�X�X��%;��!�X�X�c�=�9�
��:��:���*��	�	�.�04�5��
�N�N�4�8�8�,�@�@��z�:�a�=���N�N�4�8�8�,�@�@��z�:��'6;�)��s�F
)r�r�r�r�rs�
namedtuplerYr�rnrQrOrPr�r�r�rtrur�r�s@r=rBrB~sb����I�(��'�'��	
�
�J��J�5�<O�,
� N�'�
N
�`Q�f5M�n/r?rBc�����fd���fd�}�fd�}tj|d|ddd��tj|d|ddd��y)Nc	���|��|j�jk(rh|jtj|��}|rB||ur>t	j
dt
j|��d|j�d��d�d���|S)Nz	Instance z+ is already associated with an instance of z	 via its z0 attribute, and is only allowed a single parent.�bbf1)�code)	r8�	hasparentr�instance_stater�r�r6�instance_strr\)r�rJ�oldvalue�	initiatorr�r:s     �r=�	_do_checkz*single_parent_validator.<locals>._do_check{
sz��������$�(�(�!:�!�+�+�J�,E�,E�e�,L�M�I��X�U�2��0�0� �,�,�U�3�U�\�\�4�I� ����r?c����||d|�Sr5r�)r�rJr�r�s   �r=rOz'single_parent_validator.<locals>.append�
s������t�Y�7�7r?c����||||�Sr5r�)r�rJr�r�r�s    �r=�set_z%single_parent_validator.<locals>.set_�
s������x��;�;r?rOT)�raw�retvalrJr�)r(�listen)r9r:rOr�r�s `  @r=rPrPz
sE����8�<�
�L�L��h��D��d��
�L�L��u�d��T�$�Or?)NNNNFN)Wr��
__future__rrsrw�typingrrrrrr	�rrr�r
rrrrrrrr6�baserrrrrrrr�rrrrr r!r�r"r�r#r�r$r%r&r(r�r)r*r+r5r,�sql.selectabler-r.�util.typingr/r`r0r1�sql.elementsr2rf�ColumnProperty�strategy_forrj�class_loggerr�r�r�r�rrr�
MemoizedSlots�
Identifiedrr�r�r�rr�rBrPr�r?r=�<module>r�s���2�#������� ������������"�"�'��&���)�$�*�!�&�+�#� �"� ��������"��;�#�!���3�,�������N!�b���'�'�5�5�'�I�(
��(
�J�(
�V������'�'�4�%�'�H�W:�>�W:�I��W:�t������'�'��'�>�T
�\�T
�?��T
�n������'�'��$�'�G����'�'�
�d�d�(�����'�'�4�'�8�l
�>�l
�9��H��l
�^8�8�0"
��"
�J����#�#�0�0�D�0�A��n��B�������#�#�0�0�h�0�?��#�#�0�0�d�0�;�#=�)�#=�<�@��#=�L����#�#�0�0�d�0�;��#�#�0�0�h�0�?��#�#�0�0�g�0�>��#�#�0�0�n�0�E��#�#�0�0�n�0�E�kJ��� 2� 2�C�N�N�kJ�F�F�?�@�<��kJ�\1
�1
�hIH�+�IH�X�#�#�0�0�k�0�B�a�j�a�C�a�H����#�#�0�0�j�0�A�G
G�Z�G
G�B��G
G�T����#�#�0�0�h�0�?��#�#�0�0�e�0�<�t�-�t�=�@��t�n����#�#�0�0�j�0�A�w�Z��!3�!3�w�B��w�tPr?


Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
12 May 2025 12.34 PM
root / root
0755
__init__.cpython-312.pyc
6.175 KB
12 May 2025 12.34 PM
root / root
0644
_orm_constructors.cpython-312.pyc
102.918 KB
12 May 2025 12.34 PM
root / root
0644
_typing.cpython-312.pyc
6.633 KB
12 May 2025 12.34 PM
root / root
0644
attributes.cpython-312.pyc
97.489 KB
12 May 2025 12.34 PM
root / root
0644
base.cpython-312.pyc
29.617 KB
12 May 2025 12.34 PM
root / root
0644
bulk_persistence.cpython-312.pyc
62.895 KB
12 May 2025 12.34 PM
root / root
0644
clsregistry.cpython-312.pyc
23.198 KB
12 May 2025 12.34 PM
root / root
0644
collections.cpython-312.pyc
60.257 KB
12 May 2025 12.34 PM
root / root
0644
context.cpython-312.pyc
100.727 KB
12 May 2025 12.34 PM
root / root
0644
decl_api.cpython-312.pyc
65.772 KB
12 May 2025 12.34 PM
root / root
0644
decl_base.cpython-312.pyc
67.211 KB
12 May 2025 12.34 PM
root / root
0644
dependency.cpython-312.pyc
42.091 KB
12 May 2025 12.34 PM
root / root
0644
descriptor_props.cpython-312.pyc
47.72 KB
12 May 2025 12.34 PM
root / root
0644
dynamic.cpython-312.pyc
12.618 KB
12 May 2025 12.34 PM
root / root
0644
evaluator.cpython-312.pyc
16.335 KB
12 May 2025 12.34 PM
root / root
0644
events.cpython-312.pyc
133.894 KB
12 May 2025 12.34 PM
root / root
0644
exc.cpython-312.pyc
9.602 KB
12 May 2025 12.34 PM
root / root
0644
identity.cpython-312.pyc
12.3 KB
12 May 2025 12.34 PM
root / root
0644
instrumentation.cpython-312.pyc
30.447 KB
12 May 2025 12.34 PM
root / root
0644
interfaces.cpython-312.pyc
52.975 KB
12 May 2025 12.34 PM
root / root
0644
loading.cpython-312.pyc
45.739 KB
12 May 2025 12.34 PM
root / root
0644
mapped_collection.cpython-312.pyc
21.354 KB
12 May 2025 12.34 PM
root / root
0644
mapper.cpython-312.pyc
164.729 KB
12 May 2025 12.34 PM
root / root
0644
path_registry.cpython-312.pyc
30.739 KB
12 May 2025 12.34 PM
root / root
0644
persistence.cpython-312.pyc
47.086 KB
12 May 2025 12.34 PM
root / root
0644
properties.cpython-312.pyc
31.983 KB
12 May 2025 12.34 PM
root / root
0644
query.cpython-312.pyc
125.64 KB
12 May 2025 12.34 PM
root / root
0644
relationships.cpython-312.pyc
127.342 KB
12 May 2025 12.34 PM
root / root
0644
scoping.cpython-312.pyc
81.62 KB
12 May 2025 12.34 PM
root / root
0644
session.cpython-312.pyc
198.531 KB
12 May 2025 12.34 PM
root / root
0644
state.cpython-312.pyc
44.034 KB
12 May 2025 12.34 PM
root / root
0644
state_changes.cpython-312.pyc
6.84 KB
12 May 2025 12.34 PM
root / root
0644
strategies.cpython-312.pyc
102.61 KB
12 May 2025 12.34 PM
root / root
0644
strategy_options.cpython-312.pyc
84.691 KB
12 May 2025 12.34 PM
root / root
0644
sync.cpython-312.pyc
6.397 KB
12 May 2025 12.34 PM
root / root
0644
unitofwork.cpython-312.pyc
33.215 KB
12 May 2025 12.34 PM
root / root
0644
util.cpython-312.pyc
82.975 KB
12 May 2025 12.34 PM
root / root
0644
writeonly.cpython-312.pyc
28.111 KB
12 May 2025 12.34 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF