HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/persisted/__pycache__/crefutil.cpython-38.pyc
U


W[�@s�dZddlmZmZddlmZmZddlmZm	Z	Gdd�d�Z
Gdd�de
�ZGd	d
�d
e�ZGdd�de
�Z
Gd
d�d�ZGdd�de
�ZddlmZGdd�dee
�ZdS)z7
Utility classes for dealing with circular references.
�)�division�absolute_import)�log�reflect)�range�_constructMethodc@s0eZdZdd�Zdd�ZdZdd�Zdd	�ZdS)
�NotKnowncCsg|_d|_dS�Nr)�
dependants�resolved��self�r�</usr/lib/python3/dist-packages/twisted/persisted/crefutil.py�__init__szNotKnown.__init__cCs|jr
t�|j�||f�dS�N)r�AssertionErrorr
�append)r
Z
mutableObject�keyrrr�addDependants
zNotKnown.addDependantNcCs(d|_||_|jD]\}}|||<qdS)N�)r�resolvedObjectr
)r
Z	newObjectZmutrrrr�resolveDependantsszNotKnown.resolveDependantscCsdstd��dS)Nrz(I am not to be used as a dictionary key.)rrrrr�__hash__#szNotKnown.__hash__)�__name__�
__module__�__qualname__rrrrrrrrrrs
rc@s eZdZdZdd�Zdd�ZdS)�
_ContainerzK
    Helper class to resolve circular references on container objects.
    cCs�t�|�||_||_ttt|���|_tt|��D]0}t||t�sT|j�	|�q4||�
||�q4|js~|�|�|j��dS)z�
        @param l: The list of object which may contain some not yet referenced
        objects.

        @param containerType: A type of container objects (e.g., C{tuple} or
            C{set}).
        N)rr�
containerType�l�listr�len�locs�
isinstance�removerr)r
rr�idxrrrr-s
z_Container.__init__cCs<||j|<t|t�s8|j�|�|js8|�|�|j��dS)z�
        Change the value of one contained objects, and resolve references if
        all objects have been referenced.
        N)rr#rr"r$rr�r
�n�objrrr�__setitem__Bs


z_Container.__setitem__N)rrr�__doc__rr)rrrrr(src@seZdZdZdd�ZdS)�_Tupleza
    Manage tuple containing circular references. Deprecated: use C{_Container}
    instead.
    cCst�||t�dS)zi
        @param l: The list of object which may contain some not yet referenced
        objects.
        N)rr�tuple)r
rrrrrUsz_Tuple.__init__N)rrrr*rrrrrr+Osr+c@s$eZdZdd�Zdd�Zdd�ZdS)�_InstanceMethodcCs&t�|�||_||_|�|d�dSr	)rr�my_class�namer)r
Zim_nameZim_selfZim_classrrrr_s
z_InstanceMethod.__init__cOsPddl}t�dt�|j�|jf�t�d||f�|jtjd�dsLt	�dS)Nrzinstance method %s.%szbeing called with %r %r)�file)
�	tracebackr�msgrZqualr.r/�print_stackZlogfiler)r
�args�kwr1rrr�__call__fs
z_InstanceMethod.__call__cCs8|dkstd��t|t�s4t|j|j|�}|�|�dS)Nrzonly zero index allowed)rr#rrr.r/r)r
r'r(�methodrrrr)ms
z_InstanceMethod.__setitem__N)rrrrr6r)rrrrr-^sr-c@seZdZdd�Zdd�ZdS)�_DictKeyAndValuecCs
||_dSr)�dict)r
r9rrrrtsz_DictKeyAndValue.__init__cCsH|dkrtd��|r||_n||_t|d�rDt|d�rD|j|j|j<dS)N)rrz6DictKeyAndValue should only ever be called with 0 or 1r�value)�RuntimeErrorr:r�hasattrr9r&rrrr)vsz_DictKeyAndValue.__setitem__N)rrrrr)rrrrr8ssr8c@seZdZdd�ZdS)�_DereferencecCst�|�||_dSr)rr�id)r
r>rrrr�s
z_Dereference.__init__N)rrrrrrrrr=�sr=)�Deferredc@s(eZdZdd�ZdZdd�Zdd�ZdS)	�_DefercCs t�|�t�|�|��dSr)r?rr�pauserrrrr�s

z_Defer.__init__rcCs,|jrtd||f��nd|_|�|�dS)Nz4setitem should only be called once, setting %r to %rr)�wassetr;�callbackr&rrrr)�sz_Defer.__setitem__cCs*t�|||�|��|j}|�|�dSr)rrZunpause�resultr)r
ZdeprZresovdrrrr�sz_Defer.addDependantN)rrrrrBr)rrrrrr@�sr@N)r*Z
__future__rrZtwisted.pythonrrZtwisted.python.compatrrrrr+r-r8r=Ztwisted.internet.deferr?r@rrrr�<module>s'