L iq $dZdgZGddeZy)zMisc dict tools.hashdictcReZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zy )ra< 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 cFtt|jSN)tuplesorteditemsselfs ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/fontTools/misc/dictTools.py__keyzhashdict.__keysVDJJL)**cdj|jjdjd|j DS)Nz{0}({1})z, c3pK|].}djt|dt|d0yw)z{0}={1}N)formatstrrepr).0is r z$hashdict.__repr__..$s-T!i&&s1Q4y$qt*=Ts46)r __class____name__join_hashdict__keyr s r __repr__zhashdict.__repr__!s:  NN # # IITtzz|T T  r c4t|jSr)hashrr s r __hash__zhashdict.__hash__'sDJJL!!r c^tdj|jjNz${0} does not support item assignment TypeErrorrrr)r keyvalues r __setitem__zhashdict.__setitem__*' 2 9 9$..:Q:Q R  r c^tdj|jjr!r")r r$s r __delitem__zhashdict.__delitem__/r'r c^tdj|jjr!r"r s r clearzhashdict.clear4r'r c^tdj|jjr!r"r argskwargss r popz hashdict.pop9r'r c^tdj|jjr!r"r-s r popitemzhashdict.popitem>r'r c^tdj|jjr!r"r-s r setdefaultzhashdict.setdefaultCr'r c^tdj|jjr!r"r-s r updatezhashdict.updateHr'r cHt|}tj|||Sr)rdictr6)r rightresults r __add__zhashdict.__add__Ps$ FE" r N)r __module__ __qualname____doc__rrrr&r)r+r0r2r4r6r;r r rrs>,+ "       r N)r>__all__r8rr?r r rAs ,LtLr