Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/attr/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/attr/__pycache__/_compat.cpython-35.pyc



#IGZ��@s:ddlmZmZmZddlZddlZddlZddlZejddkZ	ej
�dkZe	r�ddlm
Z
dd�ZdZd	d
�ZGdd�de
�Zd
d�Zn*dd�ZdZdd
�Zdd�Zdd�Ze	sdd�Zndd�Zdd�Ze�ZdS)�)�absolute_import�division�print_functionN��PyPy)�IterableUserDictcCst|ttjf�S)N)�
isinstance�type�typesZ	ClassType)�klass�r�=/opt/alt/python35/lib/python3.5/site-packages/attr/_compat.py�isclasssrr	cCs
|j�S)N)�	iteritems)�drrr
rsrc@s|eZdZdZdd�Zdd�Zdd�Zdd	�Zd
dd�Zd
d�Z	d
dd�Z
dd�Zd
S)�ReadOnlyDictz5
        Best-effort read-only dict wrapper.
        cCstd��dS)Nz6'mappingproxy' object does not support item assignment)�	TypeError)�self�key�valrrr
�__setitem__!szReadOnlyDict.__setitem__cCstd��dS)Nz/'mappingproxy' object has no attribute 'update')�AttributeError)r�_rrr
�update&szReadOnlyDict.updatecCstd��dS)Nz4'mappingproxy' object does not support item deletion)r)rrrrr
�__delitem__+szReadOnlyDict.__delitem__cCstd��dS)Nz.'mappingproxy' object has no attribute 'clear')r)rrrr
�clear0szReadOnlyDict.clearNcCstd��dS)Nz,'mappingproxy' object has no attribute 'pop')r)rr�defaultrrr
�pop5szReadOnlyDict.popcCstd��dS)Nz0'mappingproxy' object has no attribute 'popitem')r)rrrr
�popitem:szReadOnlyDict.popitemcCstd��dS)Nz3'mappingproxy' object has no attribute 'setdefault')r)rrrrrr
�
setdefault?szReadOnlyDict.setdefaultcCsdt|j�dS)Nz
mappingproxy(�))�repr�data)rrrr
�__repr__DszReadOnlyDict.__repr__)�__name__�
__module__�__qualname__�__doc__rrrrrrrr#rrrr
rsrcCst�}|jj|�|S)N)rr"r)r�resrrr
�metadata_proxyHs	r)cCs
t|t�S)N)rr	)rrrr
rNs�classcCs
|j�S)N)�items)rrrr
rSscCstjt|��S)N)r
�MappingProxyType�dict)rrrr
r)VscCs1yddl}|SWntk
r,dSYnXdS)z0
    Moved into a function for testability.
    rN)�ctypes�ImportError)r.rrr
�
import_ctypesZs

r0cOstjdtdd�dS)z�
        We only warn on Python 3 because we are not aware of any concrete
        consequences of not setting the cell on Python 2.
        ziMissing ctypes.  Some features like bare super() or accessing __class__ will not work with slots classes.�
stacklevelrN)�warnings�warn�RuntimeWarning)�args�kwrrr
�	just_warnfsr7cOsdS)z�
        We only warn on Python 3 because we are not aware of any concrete
        consequences of not setting the cell on Python 2.
        Nr)r5r6rrr
r7rscCsdtrdd�}nKt�}|dk	rZ|jj}|j|jf|_|j|_nt}|S)z0
    Moved into a function for testability.
    cSs|j|f�dS)N)�__setstate__)�cell�valuerrr
�set_closure_cell~sz/make_set_closure_cell.<locals>.set_closure_cellN)	�PYPYr0�	pythonapiZ
PyCell_Set�	py_object�argtypes�c_int�restyper7)r;r.rrr
�make_set_closure_cellys	rB)�
__future__rrr�platform�sysr
r2�version_info�PY2�python_implementationr<�UserDictrrZTYPErrr)r0r7rBr;rrrr
�<module>s.,