提交 468fe6d2 authored 作者: Arnaud Bergeron's avatar Arnaud Bergeron

Move DefaultOrderedDict to a more natural location.

上级 cd0b520b
......@@ -56,3 +56,42 @@ else:
def decode_iter(x):
return x
__all__ += ['cmp', 'operator_div', 'partial', 'defaultdict', 'deque',
'combinations', 'product', 'maxsize', 'DictMixin',
'OrderedDict', 'decode', 'decode_iter']
class DefaultOrderedDict(OrderedDict):
def __init__(self, default_factory=None, *a, **kw):
if (default_factory is not None and
not callable(default_factory)):
raise TypeError('first argument must be callable')
OrderedDict.__init__(self, *a, **kw)
self.default_factory = default_factory
def __getitem__(self, key):
try:
return OrderedDict.__getitem__(self, key)
except KeyError:
return self.__missing__(key)
def __missing__(self, key):
if self.default_factory is None:
raise KeyError(key)
self[key] = value = self.default_factory()
return value
def __reduce__(self):
if self.default_factory is None:
args = tuple()
else:
args = self.default_factory,
return type(self), args, None, None, self.items()
def copy(self):
return self.__copy__()
def __copy__(self):
return type(self)(self.default_factory, self)
__all__ += ['DefaultOrderedDict']
......@@ -516,38 +516,3 @@ else:
__all__ += ['DictMixin', 'OrderedDict', 'Counter']
class DefaultOrderedDict(OrderedDict):
def __init__(self, default_factory=None, *a, **kw):
if (default_factory is not None and
not callable(default_factory)):
raise TypeError('first argument must be callable')
OrderedDict.__init__(self, *a, **kw)
self.default_factory = default_factory
def __getitem__(self, key):
try:
return OrderedDict.__getitem__(self, key)
except KeyError:
return self.__missing__(key)
def __missing__(self, key):
if self.default_factory is None:
raise KeyError(key)
self[key] = value = self.default_factory()
return value
def __reduce__(self):
if self.default_factory is None:
args = tuple()
else:
args = self.default_factory,
return type(self), args, None, None, self.items()
def copy(self):
return self.__copy__()
def __copy__(self):
return type(self)(self.default_factory, self)
__all__ += ['DefaultOrderedDict']
......@@ -24,7 +24,7 @@ except ImportError:
import numpy.distutils # TODO: TensorType should handle this
import theano
from theano.compat import any, PY3, next, decode, decode_iter
from theano.compat import PY3, next, decode, decode_iter
from theano.compat.six import b, BytesIO, StringIO
from theano.gof.utils import flatten
from theano.configparser import config
......
import theano
from theano.compat import any
from theano.gradient import DisconnectedType
from theano.gof import Op, Apply, TopoOptimizer
from theano import tensor
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论