Ñò éíÑXc@sdefd„ƒYZdS(t OrderedDictcBsòeZdZd„Zdd„Zd„Zd„Zd„Zd„Z d„Z d„Z d „Z d „Z d „Zd „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s• A dictionary that keeps its keys in the order in which they're inserted. Copied from Django's SortedDict with some modifications. cOs+tt|ƒi|||Ž}g|_|S(N(tsuperRt__new__tkeyOrder(tclstargstkwargstinstance((s2/usr/lib/python2.6/site-packages/markdown/odict.pyRs cCs˜|djo h}ntt|ƒi|ƒt|tƒo|iƒ|_nEg|_x8|D]0\}}||ijo|ii|ƒq`q`WdS(N( tNoneRRt__init__t isinstancetdicttkeysRtappend(tselftdatatkeytvalue((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR s    c CsSddkl}|ig}|iƒD]"\}}|||||ƒfq'~ƒS(Niÿÿÿÿ(tdeepcopy(tcopyRt __class__t iteritems(RtmemoRt_[1]RR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyt __deepcopy__s cCsAtt|ƒi||ƒ||ijo|ii|ƒndS(N(RRt __setitem__RR (RRR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyRscCs*tt|ƒi|ƒ|ii|ƒdS(N(RRt __delitem__Rtremove(RR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR#sccsx|iD] }|Vq WdS(N(R(Rtk((s2/usr/lib/python2.6/site-packages/markdown/odict.pyt__iter__'s cGsItt|ƒi||Œ}y|ii|ƒWntj onX|S(N(RRtpopRRt ValueError(RRRtresult((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR+s cCs-tt|ƒiƒ}|ii|dƒ|S(Ni(RRtpopitemRR(RR ((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR!4scCst|i|iƒƒS(N(tzipRtvalues(R((s2/usr/lib/python2.6/site-packages/markdown/odict.pytitems9sccs5x.|iD]#}|tt|ƒi|ƒfVq WdS(N(RRRt __getitem__(RR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR<s cCs|iS(N(R(R((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR @scCs t|iƒS(N(titerR(R((s2/usr/lib/python2.6/site-packages/markdown/odict.pytiterkeysCscCs4g}|iD]}|tt|ƒi|ƒq~S(N(RRRR%(RRR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR#Fsccs/x(|iD]}tt|ƒi|ƒVq WdS(N(RRRR%(RR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyt itervaluesIs cCs1x*|iƒD]\}}|i||ƒq WdS(N(R$R(Rtdict_Rtv((s2/usr/lib/python2.6/site-packages/markdown/odict.pytupdateMs cCs=||ijo|ii|ƒntt|ƒi||ƒS(N(RR RRt setdefault(RRtdefault((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR,QscCs||i|S(s;Return the value of the item at the given zero-based index.(R(Rtindex((s2/usr/lib/python2.6/site-packages/markdown/odict.pytvalue_for_indexVscCs{||ijo;|ii|ƒ}|i|=||jo|d8}qKn|ii||ƒtt|ƒi||ƒdS(s@Insert the key, value pair before the item with the given index.iN(RR.tinsertRRR(RR.RRtn((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR0Zs  cCs |i|ƒ}|i|_|S(sReturn a copy of this object.(RR(Rtobj((s2/usr/lib/python2.6/site-packages/markdown/odict.pyRds cCsBddig}|iƒD]\}}|d||fq~ƒS(sv Replace the normal dict.__repr__ with a version that returns the keys in their sorted order. s{%s}s, s%r: %r(tjoinR$(RRRR*((s2/usr/lib/python2.6/site-packages/markdown/odict.pyt__repr__kscCs tt|ƒiƒg|_dS(N(RRtclearR(R((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR5rscCs|ii|ƒS(s" Return the index of a given key. (RR.(RR((s2/usr/lib/python2.6/site-packages/markdown/odict.pyR.vscCs´|djo d}nš|djo d}nƒ|idƒp|idƒoR|i|dƒ}|idƒo+|t|ƒjo d}qœ|d7}q°ntd|ƒ‚|S( s, Return index or None for a given location. t_beginit_endtisFNot a valid location: "%s". Location key must start with a ">" or "<".N(Rt startswithR.tlenR(Rtlocationti((s2/usr/lib/python2.6/site-packages/markdown/odict.pytindex_for_locationzs       cCsG|i|ƒ}|dj o|i|||ƒn|i||ƒdS(s Insert by key location. N(R>RR0R(RRRR<R=((s2/usr/lib/python2.6/site-packages/markdown/odict.pytadds cCs–|ii|ƒ}|i|=|i|ƒ}y8|dj o|ii||ƒn|ii|ƒWn,tj o |ii||ƒt‚nXdS(s& Change location of an existing item. N(RR.R>RR0R tError(RRR<R1R=((s2/usr/lib/python2.6/site-packages/markdown/odict.pytlink•s  N(t__name__t __module__t__doc__RRR RRRRRR!R$RR R'R#R(R+R,R/R0RR4R5R.R>R?RA(((s2/usr/lib/python2.6/site-packages/markdown/odict.pyRs4                     N(R R(((s2/usr/lib/python2.6/site-packages/markdown/odict.pyts