mò DµMc@sWdZdklZyeWnej od„ZnXdeefd„ƒYZdS(ssDrop-in replacement for collections.OrderedDict by Raymond Hettinger http://code.activestate.com/recipes/576693/ (s DictMixincCs$x|D]}|ptSqqWtS(N(tseqtelemtFalsetTrue(RR((tO/home/camdpams_www/Products_Activation/gluon/contrib/simplejson/ordered_dict.pytall s  t OrderedDictcBsÚtZd„Zd„Zd„Zd„Zd„Zd„Zed„Z d„Z d „Z e i Z e iZe iZe iZe iZe iZe iZe iZd „Zd „Zedd „ƒZd „Zd„ZRS(NcOslt|ƒdjotdt|ƒƒ‚ny |iWntj o|iƒnX|i||ŽdS(Nis$expected at most 1 arguments, got %d( tlentargst TypeErrortselft_OrderedDict__endtAttributeErrortcleartupdatetkwds(R RR((Rt__init__s cCs:g|_}|d||g7}h|_ti|ƒdS(N(R R tendtNonet_OrderedDict__maptdictR (R R((RR s  cCsa||jo=|i}|d}|||g|d<|d<|i||i}|d}x$||j o|dV|d}qWdS(Nii(R R RR(R RR((Rt__iter__1s    ccs>|i}|d}x$||j o|dV|d}qWdS(Nii(R R RR(R RR((Rt __reversed__8s    cCs_|ptdƒ‚n|ot|ƒiƒ}nt|ƒiƒ}|i|ƒ}||fS(Nsdictionary is empty( R tKeyErrortlasttreversedRRtiterRR(R R RR((Rtpopitem?scCs›g}|D]}||||gq ~}|i|if}|`|`t|ƒiƒ}|\|_|_|o|i |f|fSn|i |ffS(N( t_[1]R tktitemsRR ttmptvarstcopyt inst_dictt __class__(R R'R*R&R$R%((Rt __reduce__Ks+ cCs t|ƒS(N(tlistR (R ((RtkeysUscCs6|pd|iifSnd|ii|iƒfS(Ns%s()s%s(%r)(R R+t__name__R&(R ((Rt__repr__ascCs |i|ƒS(N(R R+(R ((RR)fscCs(|ƒ}x|D]}|||ss( t isinstancetotherRRR RtzipR&Rt__eq__(R R:((RR<psFcCs ||j S(N(R R:(R R:((Rt__ne__vs(R/t __module__RR RRRRRR#R,R.t DictMixint setdefaultRRtvaluesR&titerkeyst itervaluest iteritemsR0R)t classmethodRR4R<R=(((RRs,                 N(t__doc__tUserDictR?Rt NameErrorRR(R?RR((Rt?s