o \Փa @s&dZddlmZGdddeeZdS)zsDrop-in replacement for collections.OrderedDict by Raymond Hettinger http://code.activestate.com/recipes/576693/ ) DictMixinc@seZdZddZddZddZddZd d Zd d ZdddZ ddZ ddZ e j Z e jZe jZe jZe jZe jZe jZe jZddZddZed ddZddZddZdS)! OrderedDictcOsVt|dkrtdt|z|jWn ty |Ynw|j|i|dS)Nz$expected at most 1 arguments, got %d)len TypeError_OrderedDict__endAttributeErrorclearupdate)selfargskwdsr9/usr/lib/python3/dist-packages/simplejson/ordered_dict.py__init__ s    zOrderedDict.__init__cCs,g|_}|d||g7}i|_t|dSN)r_OrderedDict__mapdictr )r endrrrr s zOrderedDict.clearcCsH||vr|j}|d}|||g|d<|d<|j|<t|||dS)Nr)rrr __setitem__)r keyvaluercurrrrrrs  zOrderedDict.__setitem__cCs2t|||j|\}}}||d<||d<dS)Nrr)r __delitem__rpop)r rprevnextrrrr s  zOrderedDict.__delitem__cc:|j}|d}||ur|dV|d}||us dSdS)Nrrrr rrrrr__iter__& zOrderedDict.__iter__ccr)Nrrrr rrr __reversed__-r"zOrderedDict.__reversed__TcCs:|std|rt|nt|}||}||fS)Nzdictionary is empty)KeyErrorreversedriterr)r lastrrrrrpopitem4s  zOrderedDict.popitemcs\fddD}jjf}``t}|\__|r(j|f|fSj|ffS)Ncsg|]}||gqSrr).0kr rr <sz*OrderedDict.__reduce__..)rrvarscopy __class__)r itemstmp inst_dictrr+r __reduce__;s    zOrderedDict.__reduce__cCst|Sr)listr+rrrkeysEszOrderedDict.keyscCs&|s d|jjfSd|jj|fS)Nz%s()z%s(%r))r/__name__r0r+rrr__repr__QszOrderedDict.__repr__cCs ||Sr)r/r+rrrr.V zOrderedDict.copyNcCs|}|D]}|||<q|Srr)clsiterablerdrrrrfromkeysYs zOrderedDict.fromkeyscCsFt|trt|t|kotddt||DSt||S)Ncss|] \}}||kVqdSrr)r)pqrrr csz%OrderedDict.__eq__..) isinstancerrallzipr0r__eq__r otherrrrrC`s  zOrderedDict.__eq__cCs ||k SrrrDrrr__ne__fr8zOrderedDict.__ne__)Tr)r6 __module__ __qualname__rr rrr!r#r(r3r5r setdefaultr rvaluesr0iterkeys itervalues iteritemsr7r. classmethodr<rCrFrrrrrs0     rN)__doc__UserDictrrrrrrrs