Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/__pycache__/writeonly.cpython-312.pyc
�

���g!W���dZddlmZddlmZddlmZddlmZddlmZddlmZddlm	Z	dd	lm
Z
dd
lmZddlmZddlm
Z
dd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!dd lm"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,m-Z-erNdd)lm.Z.dd*l/m0Z0dd+lm1Z1dd,lm2Z2dd-l3m4Z4dd.l3m5Z5dd/l6m7Z7dd0lm8Z8dd1l9m:Z:dd2l"m;Z;dd3l<m=Z=dd4l>m?Z?dd5l>m@Z@ed6e�7�ZAGd8�d9eeA�ZBGd:�d;ej�ej��ZEe!j�ej�j�d<�=�Gd>�d?ej�e!j����ZKGd@�dA�ZLGdB�dCeeA�ZMGdD�dEeMeA�ZNyF)Gz�Write-only collection API.

This is an alternate mapped attribute style that only supports single-item
collection mutation operations.   To read the collection, a select()
object must be executed each time.

.. versionadded:: 2.0


�)�annotations)�Any)�
Collection)�Dict)�Generic)�Iterable)�Iterator)�List)�NoReturn)�Optional)�overload)�Tuple)�Type)�
TYPE_CHECKING)�TypeVar)�Union)�	bindparam�)�
attributes)�
interfaces)�
relationships)�
strategies)�	NEVER_SET)�
object_mapper)�PassiveFlag)�RelationshipDirection�)�exc)�inspect)�log)�util)�delete)�insert)�select)�update)�Delete)�Insert)�Update)�Literal)�QueryableAttribute)�
_InstanceDict)�AttributeEventToken)�LoaderCallableStatus)�_AdaptedCollectionProtocol)�CollectionAdapter)�Mapper)�_RelationshipOrderByArg)�
InstanceState)�AliasedClass)�	_Dispatch)�
FromClause)�Select�_T)�boundc��eZdZUdZded<ded<ded<ded<	d									dd	�Zedd
��Zedd��Zdd�Z	dd
�Z
dd�Zdd�Zy)�WriteOnlyHistoryzDOverrides AttributeHistory to receive append/remove events directly.zutil.OrderedIdentitySet�unchanged_items�added_items�
deleted_items�bool�_reconcile_collectionNc��|rt|tjzrtjd|�d|�d���|j|_|j
|_|j|_|j|_ytj�|_tj�|_tj�|_d|_y)Nz
Attribute z� can't load the existing state from the database for this operation; full iteration is not permitted.  If this is a delete operation, configure passive_deletes=True on the z- relationship in order to resolve this error.F)
r�SQL_OKr�InvalidRequestErrorr;r<r=r?r!�OrderedIdentitySet)�self�attr�state�passive�apply_tos     �I/opt/hc_python/lib64/python3.12/site-packages/sqlalchemy/orm/writeonly.py�__init__zWriteOnlyHistory.__init__Us������+�+�+��-�-� ���'3�48�&�93�3���$,�#;�#;�D� �'�3�3�D��!)�!7�!7�D��)1�)G�)G�D�&�!%�!8�!8�!:�D��#�6�6�8�D��#'�#:�#:�#<�D� �).�D�&�c�^�t|jj|j��S�N)�listr<�unionr;�rDs rI�added_plus_unchangedz%WriteOnlyHistory.added_plus_unchangedps$���D�$�$�*�*�4�+?�+?�@�A�ArKc��t|jj|j�j|j��SrM)rNr<rOr;r=rPs rI�	all_itemszWriteOnlyHistory.all_itemsts=������"�"�4�#7�#7�8�>�>��"�"�
�
�	
rKc��|jrf|jj|j�}|jj|j�}|jj|�}n$|j|j|j}}}t
jt|�t|�t|��SrM)	r?r<�
differencer;r=�intersectionr�HistoryrN)rD�added�deleted�	unchangeds    rI�
as_historyzWriteOnlyHistory.as_history|s����%�%��$�$�/�/��0D�0D�E�E��(�(�5�5�d�6J�6J�K�G��,�,�7�7��@�I�� � ��$�$��"�"�&�9�E�
�!�!�$�u�+�t�I���W�
�N�NrKc�2�t|j�|SrM)rNr<)rD�indexs  rI�indexedzWriteOnlyHistory.indexed�s���D�$�$�%�e�,�,rKc�:�|jj|�yrM)r<�add�rD�values  rI�	add_addedzWriteOnlyHistory.add_added�s�������U�#rKc��||jvr|jj|�y|jj|�yrM)r<�remover=r`ras  rI�add_removedzWriteOnlyHistory.add_removed�s8���D�$�$�$����#�#�E�*����"�"�5�)rKrM)
rE�WriteOnlyAttributeImplrF�InstanceState[_T]rGrrHzOptional[WriteOnlyHistory[_T]]�return�None)rizList[_T])ri�attributes.History)r]zUnion[int, slice]rizUnion[List[_T], _T])rbr7rirj)
�__name__�
__module__�__qualname__�__doc__�__annotations__rJ�propertyrQrSr[r^rcrf�rKrIr:r:Ms���N�,�,�(�(�*�*���48�/�$�/�!�/��	/�
1�/�
�
/�6�B��B��
��
�O�-�$�*rKr:c���eZdZUdZded<dZded<dZded<dZded<dZded<dZ	ded	<d
Z
ded<eZd
ed<ded<												d&�fd�Z
ejf							d'd�Ze		d(									d)d��Ze		d(									d*d��Ze		d(									d+d��Zdejf									d+d�Zej(		d,d��Zej(		d,d��Z	d-											d.d�Z	d-											d.d�Z						d/d�Zdejdddf																	d0d�Zd1d�Z								d2d�Zej:f							d3d �Zej>f							d4d!�Z 						d5d"�Z!ej:f											d6d#�Z"ej:f											d6d$�Z#ej:f											d6d%�Z$�xZ%S)7rgTr>�uses_objectsF�default_accepts_scalar_loader�supports_population�_supports_dynamic_iteration�
collection�dynamicrrr1�order_byzType[WriteOnlyHistory[Any]]�collection_history_clszType[WriteOnlyCollection[Any]]�query_classc�v��t�|�||d|fi|��||_t|_|rt|�|_yyrM)�superrJ�
target_mapper�WriteOnlyCollectionr|�tuplerz)rD�class_�key�dispatchrrz�kw�	__class__s       �rIrJzWriteOnlyAttributeImpl.__init__�s@���	�����d�H�;��;�*���.����!�(�O�D�M�rKc��|tjzs*|j|tj�jS|j||�SrM)rrA�_get_collection_history�PASSIVE_NO_INITIALIZEr<r|)rDrF�dict_rGs    rI�getzWriteOnlyAttributeImpl.get�sJ����+�+�+��/�/��{�8�8���k�
��#�#�D�%�0�0rKc��yrMrr�rDrFr��	user_datarGs     rI�get_collectionz%WriteOnlyAttributeImpl.get_collection���� rKc��yrMrrr�s     rIr�z%WriteOnlyAttributeImpl.get_collection�r�rKc��yrMrrr�s     rIr�z%WriteOnlyAttributeImpl.get_collection�s��rKNc���|tjzs'|j||�j}t|�S|j||�}|j}t|�SrM)rrAr�r<rQ�DynamicCollectionAdapter)rDrFr�r�rG�data�historys       rIr�z%WriteOnlyAttributeImpl.get_collection�sa����+�+�+��/�/��w�?�K�K�D�(��-�-��2�2�5�'�B�G��/�/�D�'��-�-rKc�J�tj|tj�SrM)rr,�	OP_APPENDrPs rI�
_append_tokenz$WriteOnlyAttributeImpl._append_token�����-�-�d�J�4H�4H�I�IrKc�J�tj|tj�SrM)rr,�	OP_REMOVErPs rI�
_remove_tokenz$WriteOnlyAttributeImpl._remove_token�r�rKc� �|�|j||�}|j|�|jjD]}||||xs|j�}�|j
r*|�'|j
tj|�|d�yyy�NT)	�_modified_eventrcr��appendr��trackparent�sethasparentr�instance_state�rDrFr�rb�	initiator�collection_history�fns       rI�fire_append_eventz(WriteOnlyAttributeImpl.fire_append_event�s����%�!%�!5�!5�e�U�!C���$�$�U�+��-�-�&�&�B��u�e�Y�%D�$�2D�2D�E�E�'����� 1����j�7�7��>��t�L�!2�rKc��|�|j||�}|j|�|jr(|�&|jt	j
|�|d�|jjD]}||||xs|j��y)NF)	r�rfr�r�rr�r�rer�r�s       rI�fire_remove_eventz(WriteOnlyAttributeImpl.fire_remove_event
s����%�!%�!5�!5�e�U�!C���&�&�u�-����� 1����j�7�7��>��u�M��-�-�&�&�B��u�e�Y�<�$�*<�*<�=�'rKc� �|j|jvr8|j||tj�|j|j<|j||t�d||j<|j|jSr�)r��committed_stater{r�PASSIVE_NO_FETCHr�r)rDrFr�s   rIr�z&WriteOnlyAttributeImpl._modified_event sz���8�8�5�0�0�0�.2�.I�.I��e�[�9�9�/�E�!�!�$�(�(�+�	���e�T�9�5���d�h�h���$�$�T�X�X�.�.rKc	��|r|j|jury|r|�y|}	t|	�}
|jrL|jst	j
d|�d���t
j|j|||���}|j||�}|js
|j}nj|j�}|j|
�}
t
j|
�j|
�}|j|
�}|
D]}||vs�|j|||d|���|D]}|j|||d|���y)NzCollection "zV" does not support implicit iteration; collection replacement operations can't be used�rG)r�)�parent_tokenrN�has_identityrwrrBr!�IdentitySetr�r�r<rOrVrUr�r�)rDrFr�rbr�rG�	check_old�pop�_adapt�iterable�
new_values�old_collectionr��	constants�	additions�removals�members                 rI�setzWriteOnlyAttributeImpl.set/sp����/�/�4�3D�3D�D���5�=�����(�^�
�����3�3��-�-�"�4�&�)$�$���
"�-�-������w��7��N�"�1�1�%��?���!�!�/�;�;�N�+�1�1�"�.�.��N�#�/�/�
�;�	��$�$�Z�0�;�;�I�F�	�!�,�,�Y�7�� �F���"��&�&�����'9�'��!��F��"�"�����#5�
#�
�rKc��t��rM��NotImplementedError)rD�args�kwargss   rIr"zWriteOnlyAttributeImpl.deletels��!�#�#rKc��td��)Nz7Dynamic attributes don't support collection population.r�)rDrFr�rbs    rI�set_committed_valuez*WriteOnlyAttributeImpl.set_committed_valueos��"�E�
�	
rKc�F�|j||�}|j�SrM)r�r[)rDrFr�rG�cs     rI�get_historyz"WriteOnlyAttributeImpl.get_historyvs"��
�(�(���8���|�|�~�rKc��|j||�}|jD�cgc]}tj|�|f��c}Scc}wrM)r�rSrr�)rDrFr�rGr��xs      rI�get_all_pendingz&WriteOnlyAttributeImpl.get_all_pendingsB��
�(�(���8��;<�;�;�G�;�a��*�*�1�-�q�1�;�G�G��Gs�Ac��|j|jvr|j|j}n!|j||tj�}|j
r(|tjzr|j||||��S|S)N)rH)r�r�r{rr�r��INIT_OK)rDrFrGr�s    rIr�z.WriteOnlyAttributeImpl._get_collection_history�s����8�8�u�,�,�,��%�%�d�h�h�/�A��+�+��e�[�9�9��A����7�[�-@�-@�#@��.�.��e�W�q�/��
��HrKc�6�||ur|j||||�yyrM)r��rDrFr�rbr�rGs      rIr�zWriteOnlyAttributeImpl.append��%���D� ��"�"�5�%��	�B�!rKc�6�||ur|j||||�yyrM)r�r�s      rIrezWriteOnlyAttributeImpl.remove�r�rKc�0�|j|||||��y)Nr�)rer�s      rIr�zWriteOnlyAttributeImpl.pop�s��	
���E�5�%��G��DrK)r�z#Union[Type[Any], AliasedClass[Any]]r��strr�z"_Dispatch[QueryableAttribute[Any]]rz
Mapper[_T]rzr1r�r)rF�InstanceState[Any]r�r+rGrriz8Union[util.OrderedIdentitySet, WriteOnlyCollection[Any]])..)
rFr�r�r+r�z
Literal[None]rGz Literal[PassiveFlag.PASSIVE_OFF]rir/)
rFr�r�r+r�r.rGrrir/)
rFr�r�r+r�z$Optional[_AdaptedCollectionProtocol]rGrrizIUnion[Literal[LoaderCallableStatus.PASSIVE_NO_RESULT], CollectionAdapter])rizattributes.AttributeEventTokenrM)rFr�r�r+rbrr��Optional[AttributeEventToken]r�zOptional[WriteOnlyHistory[Any]]rirj)rFr�r�r+ri�WriteOnlyHistory[Any])rFr�r�r+rbrr�r�rGrr�rr�r>r�r>rirj)r�rr�rrir)rFr�r�r+rbrrir)rFr�r�r+rGrrirk)rFr�r�r+rGrriz$List[Tuple[InstanceState[Any], Any]])rFr�rGrrir�)rFr�r�r+rbrr�r�rGrrirj)&rlrmrnrtrprurvrwrxryrzr:r{rJr�PASSIVE_OFFr�r
r�r!�memoized_propertyr�r�r�r�r�r�r"r�r�r�r�r�r�r�rer��
__classcell__)r�s@rIrgrg�s����L�$��*/�!�4�/� %���%�(-���-��J����G�T��(*�H�%�*�:J��7�J�/�/�
,�3�
,��
,�5�	
,�
"�
,�*�

,��
,�& +�6�6�	1�!�1��1��	1�

B�1��
$'�47� �!� �� �!�	 �
2� �
�
 �� ��
14�"� �!� �� �.�	 �
� �
�
 �� ��
;>�"��!����8�	�
��
�
���;?�*�6�6�.�!�.��.�8�	.�
�.�
�
.�"
���J�	'�J��J�

���J�	'�J��J�?C�
M�!�M��M��	M�
1�M�<�
M�
�M�2?C�
>�!�>��>��	>�
1�>�<�
>�
�>�&
/�'�
/�0=�
/�	�
/�(48�*�6�6����;�!�;��;��	;�
1�;��
;��;��;��;�
�;�z$�
�'�
�0=�
�FI�
�	�
� +�;�;�	�!�����	�

�� +�@�@�	H�!�H��H��	H�

.�H��'��2=��	��0 +�;�;�
	C�!�	C��	C��		C�
1�	C��
	C�
�	C�" +�;�;�
	C�!�	C��	C��		C�
1�	C��
	C�
�	C�" +�;�;�
E�!�E��E��	E�
1�E��
E�
�ErKrg�
write_only)�lazyc��eZdZeZdd�Zy)�WriteOnlyLoaderc	��d|_|jr6|jjtj
tjfvr"tjd|jz��tj|j|d|j|jj|jj|jj��y)NTztOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.)�	useobject�
impl_classrrzr|)�is_class_level�uselist�parent_property�	directionr�	ONETOMANY�
MANYTOMANYrrBr�_register_attributer��mapperrzr|)rDr�s  rI�init_class_attributez$WriteOnlyLoader.init_class_attribute�s���"����|�|�t�3�3�=�=�� � ��!�!�F
� 
��)�)�!�#'�#7�#7�8��
�	�&�&�� � �������.�.�5�5��)�)�2�2��,�,�8�8�	
rKN)r�zMapper[Any]rirj)rlrmrnrgr�r�rrrKrIr�r��s��(�J�
rKr�c�D�eZdZUdZded<d
d�Zdd�Zdd�Zd
d�Zdd�Z	y	)r�z9simplified CollectionAdapter for internal API consistency�Collection[Any]r�c��||_yrM)r�)rDr�s  rIrJz!DynamicCollectionAdapter.__init__�s	����	rKc�,�t|j�SrM)�iterr�rPs rI�__iter__z!DynamicCollectionAdapter.__iter__�s���D�I�I��rKc��yrMrrrPs rI�_reset_emptyz%DynamicCollectionAdapter._reset_empty�s��rKc�,�t|j�SrM)�lenr�rPs rI�__len__z DynamicCollectionAdapter.__len__�s���4�9�9�~�rKc��yr�rrrPs rI�__bool__z!DynamicCollectionAdapter.__bool__�s��rKN)r�r�)riz
Iterator[Any])rirj)ri�int)rir>)
rlrmrnrorprJr�r�r�r�rrrKrIr�r��s$��C�
����
��rKr�c�F�eZdZUdZesdZded<ded<dd�Zdd�Zd
d	�Z	y
)�AbstractCollectionWriterzsVirtual collection which includes append/remove methods that synchronize
    into the attribute event system.

    rrr7�instancezTuple[FromClause, ...]�	_from_objc���|j�}tr|sJ�||_||_t	|�}|j
|jj}|j�,|jj�|jf|_
nd|_
|j|d��f|_|jjr|jj|_yd|_y)NrrF)�alias_secondary)�objrr�rEr�_propsr��	secondaryr��__clause_element__r��_with_parent�_where_criteriarz�_order_by_clauses)rDrErFr�r��props      rIrJz!AbstractCollectionWriter.__init__�s����9�9�;����O�8� ��
���	��x�(���}�}�T�Y�Y�]�]�+���>�>�%�#�k�k�<�<�>����O�D�N��D�N�
���h���>� 
����9�9���%)�Y�Y�%7�%7�D�"�%'�D�"rKc���|D]Z}|jjtj|j�tj
|j�|d��\yrM)rEr�rr�r��
instance_dict)rD�iterator�items   rI�
_add_all_implz&AbstractCollectionWriter._add_all_implsH���D��I�I����)�)�$�-�-�8��(�(����7���	
�rKc��|jjtj|j�tj
|j�|d�yrM)rErerr�r�r�rDr	s  rI�_remove_implz%AbstractCollectionWriter._remove_impl"s>���	�	����%�%�d�m�m�4��$�$�T�]�]�3���		
rKN)rErgrFrh�rzIterable[_T]rirj�r	r7rirj)
rlrmrnror�	__slots__rprJr
r
rrrKrIr�r��s,���
��	��L�%�%�(�B�
rKr�c�T�eZdZdZdZdd�Zd
d�Zdd�Zdd�Zdd�Z	dd�Z
dd	�Zdd
�Zy)r�a�Write-only collection which can synchronize changes into the
    attribute event system.

    The :class:`.WriteOnlyCollection` is used in a mapping by
    using the ``"write_only"`` lazy loading strategy with
    :func:`_orm.relationship`.     For background on this configuration,
    see :ref:`write_only_relationship`.

    .. versionadded:: 2.0

    .. seealso::

        :ref:`write_only_relationship`

    )r�rErr�rc��td��)Nz�WriteOnly collections don't support iteration in-place; to query for collection items, use the select() method to produce a SQL statement and execute it with session.scalars().)�	TypeErrorrPs rIr�zWriteOnlyCollection.__iter__Ds���
M�
�	
rKc��t|jj�j|j�}|j
r|j|j
�}|jr|j|j�}|S)z�Produce a :class:`_sql.Select` construct that represents the
        rows within this instance-local :class:`_orm.WriteOnlyCollection`.

        )	r$rEr�whererr��select_fromrrz)rD�stmts  rIr$zWriteOnlyCollection.selectKsl��
5�v�d�i�i�-�-�.�4�4�d�6J�6J�K���>�>�#�4�#�#�T�^�^�4�D��!�!� �4�=�=�$�"8�"8�9�D��rKc���t|j�}|j}|j|jj
}|jtjurtjd��i}|jD]=\}}|j|||j|�}td|��||j
<�?t|jj �j"di|��S)aNFor one-to-many collections, produce a :class:`_dml.Insert` which
        will insert new rows in terms of this this instance-local
        :class:`_orm.WriteOnlyCollection`.

        This construct is only supported for a :class:`_orm.Relationship`
        that does **not** include the :paramref:`_orm.relationship.secondary`
        parameter.  For relationships that refer to a many-to-many table,
        use ordinary bulk insert techniques to produce new objects, then
        use :meth:`_orm.AbstractCollectionWriter.add_all` to associate them
        with the collection.


        z�Write only bulk INSERT only supported for one-to-many collections; for many-to-many, use a separate bulk INSERT along with add_all().N)�	callable_rr)rr�r�r�rEr�r�rr�rrB�synchronize_pairs�_get_attr_w_warn_on_none�dictrr#r�values)rDrFr�rr��l�rr�s        rIr#zWriteOnlyCollection.insertWs�����
�
�&�������}�}�T�Y�Y�]�]�+���>�>�!6�!@�!@�@��)�)�/��
�!#���*�*�D�A�q��.�.����
�
��	�B�%�T�R�8�E�!�%�%�L�+�6�v�d�i�i�-�-�.�5�5�>��>�>rKc�n�t|jj�j|j�S)z�Produce a :class:`_dml.Update` which will refer to rows in terms
        of this instance-local :class:`_orm.WriteOnlyCollection`.

        )r%rErrrrPs rIr%zWriteOnlyCollection.update�,��
5�v�d�i�i�-�-�.�4�4�d�6J�6J�K�KrKc�n�t|jj�j|j�S)z�Produce a :class:`_dml.Delete` which will refer to rows in terms
        of this instance-local :class:`_orm.WriteOnlyCollection`.

        )r"rErrrrPs rIr"zWriteOnlyCollection.delete�r!rKc�&�|j|�y)z�Add an iterable of items to this :class:`_orm.WriteOnlyCollection`.

        The given items will be persisted to the database in terms of
        the parent instance's collection on the next flush.

        N�r
)rDrs  rI�add_allzWriteOnlyCollection.add_all�s��	
���8�$rKc�(�|j|g�y)z�Add an item to this :class:`_orm.WriteOnlyCollection`.

        The given item will be persisted to the database in terms of
        the parent instance's collection on the next flush.

        Nr$rs  rIr`zWriteOnlyCollection.add�s��	
���D�6�"rKc�&�|j|�y)z�Remove an item from this :class:`_orm.WriteOnlyCollection`.

        The given item will be removed from the parent instance's collection on
        the next flush.

        N)r
rs  rIrezWriteOnlyCollection.remove�s��	
���$�rKN)rir)rizSelect[Tuple[_T]])rir')rir()rir&rr)
rlrmrnrorr�r$r#r%r"r%r`rerrrKrIr�r�+s9��� �I�
�
�&?�PL�L�%�#� rKr�N)Oro�
__future__r�typingrrrrrr	r
rrr
rrrrr�sqlalchemy.sqlr�rrrr�baserrrrrrr r!�sqlr"r#r$r%�sql.dmlr&r'r(�util.typingr)r*�_typingr+r,r-�collectionsr.r/r�r0r1rFr2r3�eventr4�sql.selectabler5r6r7r:�HasCollectionAdapter�
AttributeImplrg�class_logger�RelationshipProperty�strategy_for�AbstractRelationshipLoader�
Identifiedr�r�r�r�rrrKrI�<module>r;s]��	�#������������� ���$��������'������������!��$�&�/�*�7�.��6�$�"�!�+�'��T����F*�w�r�{�F*�RbE��#�#�Z�%=�%=�bE�J	����#�#�0�0�l�0�C�
�j�;�;�S�^�^�
�D��
�4��*<
�w�r�{�<
�~{ �2�2�6�{ rK

ZeroDay Forums Mini