3 œäL]µã@sBddlZejdks ddlmZnddlmZGdd„deeƒZdS) éNéé)Ú OrderedDict)Ú DictMixinc@s´eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zddd„Z dd„Z dd„Z e j Z e jZe jZe jZe jZe jZe jZe jZdd„Zdd„Zed dd„ƒZdd„Zdd„ZdS)!rc OsTt|ƒdkrtdt|ƒƒ‚y |jWntk rB|jƒYnX|j||ŽdS)Néz$expected at most 1 arguments, got %d)ÚlenÚ TypeErrorÚ_OrderedDict__endÚAttributeErrorÚclearÚupdate)ÚselfÚargsÚkwds©rú?/tmp/pip-install-wfra5znf/asn1crypto/asn1crypto/_ordereddict.pyÚ__init__#s  zOrderedDict.__init__cCs,g|_}|d||g7}i|_tj|ƒdS)N)r Ú_OrderedDict__mapÚdictr )r Úendrrrr ,s zOrderedDict.clearcCsH||kr6|j}|d}|||g|d<|d<|j|<tj|||ƒdS)Nrr)r rrÚ __setitem__)r ÚkeyÚvaluerÚcurrrrrr2s  zOrderedDict.__setitem__cCs2tj||ƒ|jj|ƒ\}}}||d<||d<dS)Nrr)rÚ __delitem__rÚpop)r rÚprevZnext_rrrr9s zOrderedDict.__delitem__ccs2|j}|d}x||k r,|dV|d}qWdS)Nrr)r )r rrrrrÚ__iter__?s   zOrderedDict.__iter__ccs2|j}|d}x||k r,|dV|d}qWdS)Nrr)r )r rrrrrÚ __reversed__Fs   zOrderedDict.__reversed__TcCs<|s tdƒ‚|rt|ƒjƒ}n t|ƒjƒ}|j|ƒ}||fS)Nzdictionary is empty)ÚKeyErrorÚreversedÚnextÚiterr)r ÚlastrrrrrÚpopitemMs  zOrderedDict.popitemcs\‡fdd„ˆDƒ}ˆjˆjf}ˆ`ˆ`tˆƒjƒ}|\ˆ_ˆ_|rPˆj|f|fSˆj|ffS)Ncsg|]}|ˆ|g‘qSrr)Ú.0Úk)r rrú Xsz*OrderedDict.__reduce__..)rr ÚvarsÚcopyÚ __class__)r ÚitemsÚtmpÚ inst_dictr)r rÚ __reduce__Ws   zOrderedDict.__reduce__cCst|ƒS)N)Úlist)r rrrÚkeysaszOrderedDict.keyscCs&|sd|jjfSd|jj|jƒfS)Nz%s()z%s(%r))r*Ú__name__r+)r rrrÚ__repr__mszOrderedDict.__repr__cCs |j|ƒS)N)r*)r rrrr)rszOrderedDict.copyNcCs |ƒ}x|D] }|||<q W|S)Nr)ÚclsÚiterablerÚdrrrrÚfromkeysus  zOrderedDict.fromkeyscCsZt|tƒrNt|ƒt|ƒkrdSx*t|jƒ|jƒƒD]\}}||kr2dSq2WdStj||ƒS)NFT)Ú isinstancerrÚzipr+rÚ__eq__)r ÚotherÚpÚqrrrr9|s zOrderedDict.__eq__cCs ||k S)Nr)r r:rrrÚ__ne__†szOrderedDict.__ne__)T)N)r1Ú __module__Ú __qualname__rr rrrrr$r.r0rÚ setdefaultr rÚvaluesr+ÚiterkeysÚ itervaluesÚ iteritemsr2r)Ú classmethodr6r9r=rrrrr!s.     r)rr)ÚsysÚ version_infoÚ collectionsrÚUserDictrrrrrrÚs