
    B                        S SK r S SKrS SKrS SKrS SKJr  \R                  (       a  S SKrOS SK	J
r   S SKJr  \" \S\R                   5      r " S S\R$                  5      r " S S\5      r\\L a  Cgg! \ a    \r NFf = f)	    N)reload_module)OrderedDict	iteritemsc                   L    \ rS rSrSr\rS rS rS r	S r
S rS rS	 rS
 rSrg)
frozendict   z
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                 @    U R                   " U0 UD6U l        S U l        g N)dict_cls_dict_hash)selfargskwargss      &lib/third_party/frozendict/__init__.py__init__frozendict.__init__"   s    ]]D3F3

    c                      U R                   U   $ r
   r   r   keys     r   __getitem__frozendict.__getitem__&   s    zz#r   c                     XR                   ;   $ r
   r   r   s     r   __contains__frozendict.__contains__)   s    jj  r   c                 (    U R                   " U 40 UD6$ r
   )	__class__)r   add_or_replaces     r   copyfrozendict.copy,   s    ~~d5n55r   c                 ,    [        U R                  5      $ r
   )iterr   r   s    r   __iter__frozendict.__iter__/   s    DJJr   c                 ,    [        U R                  5      $ r
   )lenr   r%   s    r   __len__frozendict.__len__2   s    4::r   c                 T    SU R                   R                  < SU R                  < S3$ )N< >)r   __name__r   r%   s    r   __repr__frozendict.__repr__5   s     NN33TZZ@@r   c                     U R                   c5  Sn[        U R                  5       H  u  p#U[        X#45      -  nM     Xl         U R                   $ )Nr   )r   r   r   hash)r   hr   values       r   __hash__frozendict.__hash__8   sF    ::A'

3
T3,'' 4Jzzr   )r   r   N)r0   
__module____qualname____firstlineno____doc__dictr   r   r   r   r!   r&   r*   r1   r7   __static_attributes__ r   r   r   r      s7    
 H!6 Ar   r   c                       \ rS rSrSr\rSrg)FrozenOrderedDictA   z0
A frozendict subclass that maintains key order
r?   N)r0   r9   r:   r;   r<   r   r   r>   r?   r   r   rA   rA   A   s     Hr   rA   )	functoolsoperatorsyssix	six.movesr   PY2collectionscollections_abccollections.abcabcr   ImportErrorNotImplementedgetattrr=   itemsr   Mappingr   rA   r?   r   r   <module>rR      s      
 
 #77) .!'
 D+tzz2	$(( $N
  .  !m  ! K!s   A6 6B B