ó i­:Oc@sBdZddlZddlmZdefd„ƒYZdZdS(s ----------- defaultdict ----------- This is a pure python implementation of defaultdict that is compatible with the defaultdict class provided by python-2.5 and above. .. seealso:: :class:`collections.defaultdict` for documentation on this module iÿÿÿÿN(tb_t defaultdictcBsSeZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z RS( cOsQ|dk r1t|dƒ r1ttdƒƒ‚ntj|||Ž||_dS(Nt__call__sFirst argument must be callable(tNonethasattrt TypeErrorRtdictt__init__tdefault_factory(tselfRtargstkwargs((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pyRZs  cCs6ytj||ƒSWntk r1|j|ƒSXdS(N(Rt __getitem__tKeyErrort __missing__(R tkey((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pyR as cCs6|jdkrt|ƒ‚n|jƒ||<}|S(N(RRR (R Rtvalue((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pyRgscCsF|jdkrtƒ}n |jf}t|ƒ|dd|jƒfS(N(RRttuplettypet iteritems(R R ((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pyt __reduce__ms  cCs |jƒS(N(t__copy__(R ((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pytcopytscCst|ƒ|j|ƒS(N(RR(R ((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pyRwscCs1ddl}t|ƒ|j|j|jƒƒƒS(Niÿÿÿÿ(RRRtdeepcopytitems(R tmemoR((sO/usr/lib/python2.7/site-packages/kitchen/pycompat25/collections/_defaultdict.pyt __deepcopy__zs cCskt|jtjƒrE|jjdk rEt|jjtƒrEd}nt |jƒ}d|t j |ƒfS(Ns-Hs 0