ó ô^‚Rc@sbdZdd d„ƒYZdefd„ƒYZddlZejjeƒdd d„ƒYZdS( sGA more or less complete user-defined wrapper around dictionary objects.tUserDictcBsòeZdd„Zd„Zd„ZdZd„Zd„Zd„Z d„Z d„Z d„Z d „Z d „Zd „Zd „Zd „Zd„Zd„Zdd„Zdd„Zdd„Zd„Zd„Zd„Zedd„ƒZRS(cKsEi|_|dk r%|j|ƒnt|ƒrA|j|ƒndS(N(tdatatNonetupdatetlen(tselftdicttkwargs((s/usr/lib/python2.7/UserDict.pyt__init__s    cCs t|jƒS(N(treprR(R((s/usr/lib/python2.7/UserDict.pyt__repr__ scCs6t|tƒr"t|j|jƒSt|j|ƒSdS(N(t isinstanceRtcmpR(RR((s/usr/lib/python2.7/UserDict.pyt__cmp__ scCs t|jƒS(N(RR(R((s/usr/lib/python2.7/UserDict.pyt__len__scCsO||jkr|j|St|jdƒr?|jj||ƒSt|ƒ‚dS(Nt __missing__(Rthasattrt __class__RtKeyError(Rtkey((s/usr/lib/python2.7/UserDict.pyt __getitem__s  cCs||j|s  cGs|jj||ŒS(N(Rtpop(RRtargs((s/usr/lib/python2.7/UserDict.pyR(BscCs |jjƒS(N(Rtpopitem(R((s/usr/lib/python2.7/UserDict.pyR*DscCs ||jkS(N(R(RR((s/usr/lib/python2.7/UserDict.pyt __contains__FscCs(|ƒ}x|D]}|||s L