Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/twisted/persisted/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/twisted/persisted/__pycache__/aot.cpython-310.pyc
o

�b�F�
@s�dZddlZddlZddlZddlmZddlmZddl	m
Z
mZddlm
Z
Gdd�d�ZGd	d
�d
e�ZGdd�de�ZGd
d�de�ZGdd�d�ZGdd�d�Ze�Zeeeeeeed�eee�g	ZGdd�d�ZGdd�d�Z Gdd�d�Z!Gdd�d�Z"dd�Z#Gdd�de$�Z%e�&d�Z'd d!�Z(d"d#�Z)d$d%�Z*d&d'�Z+d(d)�Z,Gd*d+�d+�Z-d,d-�Z.d8d.d/�Z/d0d1�Z0d2d3�Z1d4d5�Z2Gd6d7�d7�Z3dS)9z|
AOT: Abstract Object Trees
The source-code-marshallin'est abstract-object-serializin'est persister
this side of Marmalade!
�N)�generate_tokens)�crefutil)�log�reflect)�_constructMethodc@�eZdZdd�ZdS)�NamedcC�
||_dS�N��name)�selfr�r�7/usr/lib/python3/dist-packages/twisted/persisted/aot.py�__init__�
zNamed.__init__N)�__name__�
__module__�__qualname__rrrrrr�rc@r)�ClasscC�
d|jS)Nz	Class(%r)r�r
rrr�	getSource$rzClass.getSourceN�rrrrrrrrr#rrc@r)�FunctioncCr)NzFunction(%r)rrrrrr)rzFunction.getSourceNrrrrrr(rrc@r)�ModulecCr)Nz
Module(%r)rrrrrr.rzModule.getSourceNrrrrrr-rrc@�eZdZdd�Zdd�ZdS)�InstanceMethodcCs@t|t�st|t�st|t�std|��||_||_||_dS)Nz$%s isn't an Instance, Ref, or Deref!)�
isinstance�Ref�Instance�Deref�	TypeErrorr�klass�instance)r
rr$�instrrrr3s���
zInstanceMethod.__init__cCsd�|j|jt|j��S)Nz InstanceMethod({!r}, {!r}, 
{}))�formatrr$�prettifyr%rrrrr>s
�zInstanceMethod.getSourceN�rrrrrrrrrr2src@seZdZdS)�_NoStateObjN)rrrrrrrr*Fsr*c@s eZdZefdd�Zdd�ZdS)r!cKsDt|t�std|��||_|tur||_d|_dS||_d|_dS)Nz%s isn't a string!r�)r�strr#r$�
NoStateObj�state�stateIsDict)r
�	className�__stateObj__r.rrrrZs


zInstance.__init__cCs�|jr|j}nt|jt�rt|jjt�r|jj}nd}|durBz
d|j�dt|��d�WStyAd|j�dt	|��d�YSwd|j�dt	|j��d�S)Nz	Instance(�, �))
r/r.rr �obj�dictr$�dictToKW�NonFormattableDictr()r
�	stateDictrrrres
�zInstance.getSourceN)rrrr-rrrrrrr!Ysr!c@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
r cGs<t|�dkr|d|_|d|_dS|sd|_d|_dSdS)N�rr+)�len�refnumr4)r
�argsrrrrvs

�zRef.__init__cC�&|jrtd|�d|j����||_dS)NzError setting id �, I already have )r<�
ValueError�r
�numrrr�setRef�
z
Ref.setRefcCr>)NzError setting obj r?)r4r@)r
r4rrr�setObj�rDz
Ref.setObjcCs6|jdur	td��|jrd|jt|j�fSt|j�S)Nz7Don't try to display me before setting an object on me!z
Ref(%d, 
%s))r4�RuntimeErrorr<r(rrrrr�s
�
z
Ref.getSourceN)rrrrrCrErrrrrr us
	r c@s eZdZdd�Zdd�ZeZdS)r"cCr	r
�r<rArrrr�rzDeref.__init__cCr)Nz	Deref(%d)rGrrrrr�rzDeref.getSourceN)rrrrr�__repr__rrrrr"�sr"c@r)�CopyregcCs||_||_dSr
)�loadfuncr.)r
rJr.rrrr�s
zCopyreg.__init__cCsd|j�dt|j��d�S)NzCopyreg(r2r3)rJr(r.rrrrr�szCopyreg.getSourceNr)rrrrrI�srIcCstdt|��S)zDPass me an AO, I'll return a nicely-formatted source representation.zapp = )�	indentifyr()�aorrrr�src@seZdZdZdS)r7z!A dictionary was not formattable.N)rrr�__doc__rrrrr7�sr7z[a-zA-Z_][a-zA-Z0-9_]*$cCsxg}t|���}|��|D](\}}t|t�std|��t�|�s(td|��|�d|�dt	|��d��qd�
|�S)Nz%r ain't a stringz%r ain't an identifier�
�=�,�)�list�items�sortrr,r7�r�match�appendr(�join)�d�outrS�k�vrrrr6�s


r6cCs4t|d�r	|��St|�}|tvrt|�S|turEdg}|��D]\}}|�dt|��dt|��d��q |�t	|�r=dp>d�d�
|�S|turjd	g}|D]}|�d
t|��qN|�t	|�rbdpcd�d�
|�S|tur�d
g}|D]}|�d
t|��qs|�t	|�r�dp�d�d�
|�St
d|�d|�d���)Nr�{rNz: rPz
}�}rQ�[z
%s,z
]�]�(z
)r3zUnsupported type z when trying to prettify �.)�hasattrr�type�_SIMPLE_BUILTINS�reprr5rSrWr(r;rXrR�tupler#)r4�trZr[r\�xrrrr(�s0
"


r(cCs�g}g}d|g}t|j�D]0\}}\}}\}}	}
|dvr"|�|�n|dvr*|��|dkr8|�dt|��q
|�|�q
d�|�S)NrQ)r_rar])r`r3r^�z  )�tokenize�poprWr;rX)�srZ�stack�l�	tokenType�tokenString�startRow�startColumn�endRow�	endColumn�logicalLinerrrrK�s$�
rKcC�t��|�S)zG
    Pass me an Abstract Object Tree, and I'll unjelly it for you.
    )�AOTUnjellier�unjelly)�aotrrr�unjellyFromAOTsr{c	Csfttttttttd�}t|d�r|�	�}n|}t
|dd�}t|||�d|vr-t|d�St
d|��)z�
    Pass me a string of code or a filename that defines an 'app' variable (in
    terms of Abstract Objects!), and I'll execute it and unjelly the resulting
    AOT for you, returning a newly unpersisted Application object!
    )r!rrrrr r"rI�readz<source>�exec�appz'%s needs to define an 'app', it didn't!)r!rrrrr r"rIrcr|�compile�evalr{r@)�stringOrFile�ns�source�coderrr�unjellyFromSources"�

r�c@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)rxzWI handle the unjellying of an Abstract Object Tree.
    See AOTUnjellier.unjellyAO
    cCsi|_g|_g|_dSr
)�
referencesrn�afterUnjellyrrrrr,s
zAOTUnjellier.__init__cCst��}|�|d|�|S)zUnjelly a node, later.r)r�_Defer�unjellyInto)r
�noderYrrr�unjellyLater4szAOTUnjellier.unjellyLatercCs.|�|�}|||<t|tj�r|�||�|S)zvUtility method for unjellying one object into another.
        This automates the handling of backreferences.
        )�	unjellyAOrr�NotKnown�addDependant)r
r4�locrL�orrrr�:s

zAOTUnjellier.unjellyIntocCs:t|tj�rdg}|�|d�n|g}|j�||f�dS)Nr+)rrr�r�r�rW)r
�callable�result�
listResultrrr�	callAfterDs
zAOTUnjellier.callAftercCs|�|j||�dS)z�Utility method for unjellying into instances of attributes.

        Use this rather than unjellyAO unless you like surprising bugs!
        Alternatively, you can use unjellyInto on your instance's __dict__.
        N)r��__dict__)r
r%�attrNamerLrrr�unjellyAttributeLszAOTUnjellier.unjellyAttributecCs�|j�|�t|�}|tvr|S|tur-g}|D]}|�d�|�|t|�d|�q|S|turUg}t}|D]}|�d�t|�|t|�d|�t	j
�rPt	j}q7||�S|turyi}|�
�D]\}}t	�|�}	|�|	d|�|�|	d|�q_|S|j}
|
tur�t�|j�S|
ttfvs�t|
t�r�t�|j�S|
tur�|j}t�|j�}|�|j�}
||jvr�|
dur�t||�St|
t	j
�r�t	�||
|�St|||
�St d��|
t!ur�t�|j�}|�|j"�}|�#|�}t$|d�r�|�%|j&|�|S||_|S|
t'u�r;|�|j(�}|j)}|j*�+|�}|du�r||j*|<|St|t	j
��r*|�,|�||j*|<|S|du�r2	|St-d|||f��|
t.u�r\|j)}|j*�+|�}|du�rZt	�/|�}||j*|<|S|S|
t0u�rut�|j1�}|�2|j"��3dd�|�}|St d	|��)
zaUnjelly an Abstract Object and everything it contains.
        I return the real object.
        Nr+rzinstance method changed�__setstate__z1Multiple references with the same ID: %s, %s, %s!cSs||�Sr
r)r��_lrrr�<lambda>�sz(AOTUnjellier.unjellyAO.<locals>.<lambda>zUnsupported AOT type: %s)4rnrWrdrerRr�r;rgrrr��_Tupler5rS�_DictKeyAndValue�	__class__rr�namedModulerrr�
issubclass�namedObjectrr$r�r%r��getattr�_InstanceMethodrr#r!r.�__new__rcr�r�r r4r<r��get�resolveDependantsr@r"�_DereferencerIrJr��addCallback)r
rLrhrori�tuple_rYr[r\�kvd�c�im_name�im_class�im_selfr$r.r&r��refkey�refrB�derrJrrrr�Us�

�




�


�

	
����




�zAOTUnjellier.unjellyAOc
Csnzdg}|�|d|�|jD]
\}}||d�q|dWSty6t�d�t�d�tt|j����w)Nr�+Error jellying object! Stacktrace follows::�
)	r�r��
BaseExceptionr�msgrX�maprfrn)r
rLro�funcr\rrrry�s

�zAOTUnjellier.unjellyN)rrrrMrr�r�r�r�r�ryrrrrrx's
	frxcCrw)z-Convert an object to an Abstract Object Tree.)�
AOTJellier�jelly)r4rrr�
jellyToAOT�sr�cCs,t|�}|r|�t|��d��dSt|�S)z�
    Pass me an object and, optionally, a file object.
    I'll convert the object to an AOT either return it (if no file was
    specified) or write it to the file.
    zutf-8N)r��writer�encode)r4�filerzrrr�
jellyToSource�sr�cCs|jjS)z�
    Get the associated class of the given method object.

    @param methodObject: a bound method
    @type methodObject: L{types.MethodType}

    @return: a class
    @rtype: L{type}
    )�__self__r���methodObjectrrr�_classOfMethod�s
r�cC�|jS)z�
    Get the associated function of the given method object.

    @param methodObject: a bound method
    @type methodObject: L{types.MethodType}

    @return: the function implementing C{methodObject}
    @rtype: L{types.FunctionType}
    )�__func__r�rrr�
_funcOfMethod��
r�cCr�)z�
    Get the object that a bound method is bound to.

    @param methodObject: a bound method
    @type methodObject: L{types.MethodType}

    @return: the C{self} passed to C{methodObject}
    @rtype: L{object}
    )r�r�rrr�
_selfOfMethod�r�r�c@r9)
r�cCsi|_d|_g|_dS)Nr)�prepared�_ref_idrnrrrrrs
zAOTJellier.__init__cCs||jt|�<dS)zaI prepare an object for later referencing, by storing its id()
        and its _AORef in a cache.N)r��id)r
�aoref�objectrrr�
prepareForRefszAOTJellier.prepareForRefcs t��}�j�t���|tvr��n�t|tj�r-tt	��j
t�t
�����t�����n�t|tj�r9t�j
��n�t|t�rFtt�����n�|tjurStt�����n�t���jvr}�jt��}|jrk|j}t|�S�jd�_�j}|�|�t|�St�����fdd�}�����|tur����fdd��D��nk|t ur���t t!�j����n[|t"ur�i}��#�D]\}}��|�|��|�<q���|�n<|t$j%vr�t$j%|��\}	}
��t&t�|	���|
���nt'�d�r�|��(��nt'�d��r|�j)�nt*d|j
���jd	=�S)
z+I turn an object into an AOT and return it.r+cs"��tt��j���|���dSr
)rEr!r�qualr��	jellyToAO)r.�r4�retvalr
rr�
_stateFromHs�z(AOTJellier.jellyToAO.<locals>._stateFromcsg|]}��|��qSr)r�)�.0r�rrr�
<listcomp>Psz(AOTJellier.jellyToAO.<locals>.<listcomp>�__getstate__r�zUnsupported type: %s���)+rdrnrWrfrer��types�
MethodTyperr�rrr�r�r�r��
ModuleTyperr�FunctionTyper�fullFuncNamer�r�r<r�rCr"r r�rRrErgr�r5rS�copy_reg�dispatch_tablerIrcr�r�r#)r
r4�objType�oldRef�keyr�rYr[r\�unpickleFuncr.rr�rr�sb�


�

�
zAOTJellier.jellyToAOcCs>z|�|�}|WStyt�d�t�d�|j���w)Nr�r�)r�r�rr�rXrn)r
r4rLrrrr�ls

�zAOTJellier.jellyN)rrrrr�r�r�rrrrr�s
Yr�r
)4rM�copyregr��rer�rkr�twisted.persistedr�twisted.pythonrr�twisted.python.compatrrrrrrr*r-�bool�bytesr,�int�float�complexrd�slice�Ellipsisrer!r r"rIr�	Exceptionr7rrUr6r(rKr{r�rxr�r�r�r�r�r�rrrr�<module>sZ
�



"'




Spamworldpro Mini