+
    f7iq	  c                   s&    R t R.t ! R R]4      tR# )zMisc dict tools.hashdictc                   sf   a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )r    a  
hashable dict implementation, suitable for use as a key into
other dicts.

    >>> h1 = hashdict({"apples": 1, "bananas":2})
    >>> h2 = hashdict({"bananas": 3, "mangoes": 5})
    >>> h1+h2
    hashdict(apples=1, bananas=3, mangoes=5)
    >>> d1 = {}
    >>> d1[h1] = "salad"
    >>> d1[h1]
    'salad'
    >>> d1[h2]
    Traceback (most recent call last):
    ...
    KeyError: hashdict(bananas=3, mangoes=5)

based on answers from
   http://stackoverflow.com/questions/1151658/python-hashable-dicts

c                sF    \        \        V P                  4       4      4      # N)ZtupleZsortedZitemsself   &?/usr/lib64/python3.14/site-packages/fontTools/misc/dictTools.pyZ__keyZhashdict.__key   s    VDJJL)**    c                s    R P                  V P                  P                  RP                  R V P	                  4        4       4      4      # )z{0}({1})z, c              3   s   "   T F7  pR P                  \        V^ ,          4      \        V^,          4      4      x  K9  	  R# 5i)z{0}={1}N)formatZstrZrepr)Z.0Zis   & r   Z	<genexpr>Z$hashdict.__repr__.<locals>.<genexpr>$   s0     T|!i&&s1Q4y$qt*==|s   ?A)r   	__class____name__Zjoin_hashdict__keyr   r   r   __repr__Zhashdict.__repr__!   s:      NN##IITtzz|TT
 	
r   c                s4    \        V P                  4       4      # r   )Zhashr
   r   r   r   __hash__Zhashdict.__hash__'   s    DJJL!!r   c                ^    \        R P                  V P                  P                  4      4      hz${0} does not support item assignmentZ	TypeErrorr   r   r	   )r   keyZvalues   &&&r   __setitem__Zhashdict.__setitem__*   '    299$..:Q:QR
 	
r   c                r   r   r   )r   r   s   &&r   __delitem__Zhashdict.__delitem__/   r   r   c                r   r   r   r   r   r   clearZhashdict.clear4   r   r   c                r   r   r   r   ZargsZkwargs   &*,r   popZhashdict.pop9   r   r   c                r   r   r   r   r   r   popitemZhashdict.popitem>   r   r   c                r   r   r   r   r   r   
setdefaultZhashdict.setdefaultC   r   r   c                r   r   r   r   r   r   updateZhashdict.updateH   r   r   c                sF    \        V 4      p\        P                  W!4       V# r   )r    dictr   )r   ZrightZresults   && r   __add__Zhashdict.__add__P   s    $F"r    N)r	   Z
__module__Z__qualname__Z__firstlineno____doc__r
   r   r   r   r   r   r   r   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r    r       sF     ,+
"












 r   N)r   Z__all__r   r    r   r   r   <module>r      s    ,Lt Lr   