提交 ed428a50 编写于 作者: C Cao Ying 提交者: GitHub

Merge pull request #3833 from lispc/develop

add repr for PyDataProvider2.InputType.
...@@ -27,6 +27,14 @@ class SequenceType(object): ...@@ -27,6 +27,14 @@ class SequenceType(object):
SEQUENCE = 1 SEQUENCE = 1
SUB_SEQUENCE = 2 SUB_SEQUENCE = 2
@classmethod
def tostring(cls, value):
for k in cls.__dict__:
if not k.startswith('__'):
if getattr(cls, k) == value:
return cls.__name__ + '.' + k
return 'INVALID(' + str(value) + ')'
# TODO(yuyang18): Add string data type here. # TODO(yuyang18): Add string data type here.
class DataType(object): class DataType(object):
...@@ -35,6 +43,14 @@ class DataType(object): ...@@ -35,6 +43,14 @@ class DataType(object):
SparseValue = 2 SparseValue = 2
Index = 3 Index = 3
@classmethod
def tostring(cls, value):
for k in cls.__dict__:
if not k.startswith('__'):
if getattr(cls, k) == value:
return cls.__name__ + '.' + k
return 'INVALID(' + str(value) + ')'
class CacheType(object): class CacheType(object):
NO_CACHE = 0 # No cache at all NO_CACHE = 0 # No cache at all
...@@ -69,6 +85,26 @@ class InputType(object): ...@@ -69,6 +85,26 @@ class InputType(object):
self.seq_type = seq_type self.seq_type = seq_type
self.type = tp self.type = tp
def __repr__(self):
"""
Return a human readable representation like 'InputType(dim=25921,
seq_type=SequenceType.NO_SEQUENCE, type=DataType.Dense)'
"""
repr_str = type(self).__name__
repr_str += '('
serialize_func_map = {
'dim': repr,
'seq_type': SequenceType.tostring,
'type': DataType.tostring
}
for idx, k in enumerate(self.__slots__):
if idx != 0:
repr_str += ', '
repr_str += (
k + '=' + serialize_func_map.get(k, repr)(getattr(self, k)))
repr_str += ')'
return repr_str
def dense_slot(dim, seq_type=SequenceType.NO_SEQUENCE): def dense_slot(dim, seq_type=SequenceType.NO_SEQUENCE):
""" """
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册