L ivddlmZdZdadZGddeZdZee_ee_ ejee_ ee_ee_ee_ee_ee_ee_ej(fZy#e $r dZ e e_ YPwxYw))deepcopycHtd|jjd)zK Function for not implemented method since the object is immutable 'z' object is read-only)AttributeError __class____name__self_args_kwargss _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/frozendict/_frozendict_py.py immutablers)  DNN # # $$9: N frozendictceZdZdZdZedZdZdZdZ fdZ dZ d Z d Z d Zd Zdd ZdZdZddZddZddZdZdZxZS)rz A simple immutable dictionary. The API is the same as `dict`, without methods that can change the immutability. In addition, it supports __hash__(). )_hashc8|tj|i|S)z/ Identical to dict.fromkeys(). )dictfromkeys)clsargskwargss r rzfrozendict.fromkeyss 4==$1&122rc|}t|}d}d}t|dk(r'|s%|d}|jtk(r |tk(r|}d}|rzt j |g|i|}t j |g|i||jtk(rt|st|ant}d}|rtj|dd|S)NTrFr) boollenrrr__new____init___empty_frozendictobject __setattr__)$e4b37cdf_d78a_4632_bade_6f0579d8efacrrr has_kwargscontinue_creationr its r rzfrozendict.__new__(s2&\   t9>*aB||z)cZ.?$)! <<5d5f5D MM$ 0 0 0~~+CI%,(,%,D(-%!""4"5 rcyNr rrs r rzfrozendict.__init__Ps rc|jdk7r|j}|St|j}t|}tj |d||S)zg Calculates the hash if all values are hashable, otherwise raises a TypeError. rr)r frozensetitemshashr!r")r rrrfss r __hash__zfrozendict.__hash__SsR :: JJE 4::<(BHE   tWe 4 rct||i|}|j}|tk(rtd|j }n |j }|d|dS)z/ Identical to dict.__repr__(). .())super__repr__rr _module_namer)r rrbodyklassnamers r r6zfrozendict.__repr__cs[ w00 J "^1U^^$45D>>Dqa  rc@|j}|tk(r|S||S)zA Return the object itself, as it's an immutable. )rr)r r9s r copyzfrozendict.copyrs$  J KT{rc"|jS)z See copy(). )r<r*s r __copy__zfrozendict.__copy__~s yy{rc|j}|tk(}|r t||r|j St t |}||S#t$rd}Y;wxYw)zc As for tuples, if hashable, see copy(); otherwise, it returns a deepcopy. F)rrr. TypeErrorr<rr)r memorrr9 return_copytmps r __deepcopy__zfrozendict.__deepcopy__se z)  $T  99; tDz"Sz $#  $s A A A c2|jt|ffS)z' Support for `pickle`. )rrr*s r __reduce__zfrozendict.__reduce__s d ..rcDt|}|||<|j|Sr(rr)r keyvalnew_selfs r setzfrozendict.sets#: ~~h''rcP||vr|St|}|||<|j|Sr(rH)r rIdefaultrKs r setdefaultzfrozendict.setdefaults/ $;K: ~~h''rcdt|}||=|r|j|S|jSr(rH)r rIrKs r deletezfrozendict.deletes1: SM >>(+ +~~rc ||S#t$r9t|dz }|jj}t|d|d|dwxYw)Nrz index z out of range ) IndexErrorrrr)r collectionindexmaxindexr:s r _get_by_indexzfrozendict._get_by_indexsb e$ $ :*H>>**D&wnXJ?  s AA cXt|j}|j||Sr()tuplekeysrWr rUrTs r rIzfrozendict.keys%499;' !!*e44rcXt|j}|j||Sr()rYvaluesrWr[s r valuezfrozendict.values%4;;=) !!*e44rcXt|j}|j||Sr()rYr-rWr[s r itemzfrozendict.items%4::<( !!*e44rcHtd|jjd)Nrz(' object doesn't support item assignmentr@rr)r rIrJrrs r __setitem__zfrozendict.__setitem__s+''()   rcHtd|jjd)Nrz&' object doesn't support item deletionrb)r rIrrs r __delitem__zfrozendict.__delitem__s+''()   rr()r)r __module__ __qualname____doc__ __slots__ classmethodrrrr0r6r<r>rDrFrLrOrQrWrIr^r`rcre __classcell__)rs@r rrsyI33%P  ! ,/( ( 5 5 5   rcli}|j||j||j|Sr()updater)r otherr r ress r frozendict_orrps. CJJtJJu >># rc*tt|Sr()reversedrYr s r frozendict_reversedrssd $$r)r<rrr r7rrrp__or____ior__ __reversed__rrsclearpoppopitemrm __delattr__r"rfr__all__r)rr r|s K K \" " 2    " " $     2%2J 2s A66BB