๓
i
\c           @` sT  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z e j d  d k Z	 e j
   d k Z e s e j d  d k r e Z n d  d l m Z e Z e	 r๙ d  d l m Z d	   Z d
 Z d   Z d e f d     YZ d   Z n! d   Z d Z d   Z d   Z d   Z e	 s5d   Z n	 d   Z d   Z e   Z d S(   i    (   t   absolute_importt   divisiont   print_functionNi   t   PyPyi   i   (   t   OrderedDict(   t   IterableUserDictc         C` s   t  |  t t j f  S(   N(   t
   isinstancet   typet   typest	   ClassType(   t   klass(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   isclass   s    R   c         C` s
   |  j    S(   N(   t	   iteritems(   t   d(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyR       s    t   ReadOnlyDictc           B` s\   e  Z d  Z d   Z d   Z d   Z d   Z d	 d  Z d   Z	 d	 d  Z
 d   Z RS(
   s5   
        Best-effort read-only dict wrapper.
        c         C` s   t  d   d  S(   Ns6   'mappingproxy' object does not support item assignment(   t	   TypeError(   t   selft   keyt   val(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   __setitem__)   s    c         C` s   t  d   d  S(   Ns/   'mappingproxy' object has no attribute 'update'(   t   AttributeError(   R   t   _(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   update/   s    c         C` s   t  d   d  S(   Ns4   'mappingproxy' object does not support item deletion(   R   (   R   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   __delitem__5   s    c         C` s   t  d   d  S(   Ns.   'mappingproxy' object has no attribute 'clear'(   R   (   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   clear;   s    c         C` s   t  d   d  S(   Ns,   'mappingproxy' object has no attribute 'pop'(   R   (   R   R   t   default(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   popA   s    c         C` s   t  d   d  S(   Ns0   'mappingproxy' object has no attribute 'popitem'(   R   (   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   popitemG   s    c         C` s   t  d   d  S(   Ns3   'mappingproxy' object has no attribute 'setdefault'(   R   (   R   R   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt
   setdefaultM   s    c         C` s   d t  |  j  d S(   Ns   mappingproxy(t   )(   t   reprt   data(   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   __repr__S   s    N(   t   __name__t
   __module__t   __doc__R   R   R   R   t   NoneR   R   R   R    (    (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyR   $   s   					c         C` s   t    } | j j |   | S(   N(   R   R   R   (   R   t   res(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   metadata_proxyW   s    	c         C` s   t  |  t  S(   N(   R   R   (   R
   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyR   _   s    t   classc         C` s
   |  j    S(   N(   t   items(   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyR   d   s    c         C` s   t  j t |    S(   N(   R   t   MappingProxyTypet   dict(   R   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyR&   g   s    c          C` s   d d l  }  |  S(   s0   
    Moved into a function for testability.
    i    N(   t   ctypes(   R+   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   import_ctypesk   s    c          O` s   t  j d t d d d S(   s   
        We only warn on Python 3 because we are not aware of any concrete
        consequences of not setting the cell on Python 2.
        si   Missing ctypes.  Some features like bare super() or accessing __class__ will not work with slots classes.t
   stackleveli   N(   t   warningst   warnt   RuntimeWarning(   t   argst   kw(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt	   just_warnv   s    c          O` s   d S(   s   
        We only warn on Python 3 because we are not aware of any concrete
        consequences of not setting the cell on Python 2.
        N(    (   R1   R2   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyR3      s    c          C` sj   t  r d   }  nT y: t   } | j j }  | j | j f |  _ | j |  _ Wn t k
 re t	 }  n X|  S(   s0   
    Moved into a function for testability.
    c         S` s   |  j  | f  d  S(   N(   t   __setstate__(   t   cellt   value(    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   set_closure_cell   s    (
   t   PYPYR,   t	   pythonapit
   PyCell_Sett	   py_objectt   argtypest   c_intt   restypet	   ExceptionR3   (   R7   R+   (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   make_set_closure_cell   s    	
(   i   i   (   t
   __future__R    R   R   t   platformt   sysR   R.   t   version_infot   PY2t   python_implementationR8   R*   t   ordered_dictt   collectionsR   t   UserDictR   R   t   TYPER   R   R&   R,   R3   R@   R7   (    (    (    sA   /data/av2000/b2b/venv/lib/python2.7/site-packages/attr/_compat.pyt   <module>   s6   			3							