ó
Ŭ²k^c           @   s½   y d  d l  m Z Wn! e k
 r7 d  d l m Z n Xy d  d l m Z Wn e k
 re e Z n Xe e d e j  Z	 d e f d     YZ
 d e
 f d     YZ e e k rı [ n  d S(	   i˙˙˙˙(   t   Mapping(   t   OrderedDictt	   iteritemst
   frozendictc           B   sn   e  Z d  Z e Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z RS(   sÖ   
    An immutable wrapper around dictionaries that implements the complete :py:class:`collections.Mapping`
    interface. It can be used as a drop-in replacement for dictionaries where immutability is desired.
    c         O   s"   |  j  | |   |  _ d  |  _ d  S(   N(   t   dict_clst   _dictt   Nonet   _hash(   t   selft   argst   kwargs(    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __init__/   s    c         C   s   |  j  | S(   N(   R   (   R   t   key(    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __getitem__3   s    c         C   s   | |  j  k S(   N(   R   (   R   R   (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __contains__6   s    c         K   s   |  j  |  |  S(   N(   t	   __class__(   R   t   add_or_replace(    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   copy9   s    c         C   s   t  |  j  S(   N(   t   iterR   (   R   (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __iter__<   s    c         C   s   t  |  j  S(   N(   t   lenR   (   R   (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __len__?   s    c         C   s   d |  j  j |  j f S(   Ns   <%s %r>(   R   t   __name__R   (   R   (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __repr__B   s    c         C   s^   |  j  d  k rW d } x3 t |  j  D]" \ } } | t | | f  N} q% W| |  _  n  |  j  S(   Ni    (   R   R   R   R   t   hash(   R   t   hR   t   value(    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __hash__E   s    c         C   s   |  j  S(   N(   R   (   R   (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   __json__M   s    c         C   s
   |  j    S(   N(   R   (   R   (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   to_jsonQ   s    (   R   t
   __module__t   __doc__t   dictR   R   R   R   R   R   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyR   '   s   									t   FrozenOrderedDictc           B   s   e  Z d  Z e Z RS(   s8   
    A frozendict subclass that maintains key order
    (   R   R   R   R   R   (    (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyR!   U   s   N(   t   collections.abcR    t   ImportErrort   collectionsR   t   NotImplementedt   getattrR    t   itemsR   R   R!   (    (    (    s7   lib/python2.7/site-packages/conda/_vendor/frozendict.pyt   <module>   s   
.