Skip to content

Commit 03cd8ab

Browse files
committed
Added __repr__ and a helper function
1 parent c6f581a commit 03cd8ab

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

kaitaistruct.py

+21
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import sys
33
import struct
44
from io import open, BytesIO, SEEK_CUR, SEEK_END # noqa
5+
from reprlib import Repr, recursive_repr
56

67
PY2 = sys.version_info[0] == 2
78

@@ -14,6 +15,16 @@
1415
#
1516
__version__ = '0.9'
1617

18+
reprer = Repr()
19+
20+
@recursive_repr()
21+
def repr_generator_for_all_props(self):
22+
"""Generator to use in own __repr__ functions."""
23+
return (
24+
"".join(( str(k), "=", reprer.repr(getattr(self, k)) ))
25+
for k in dir(self)
26+
if k[0] != "_" and not hasattr(KaitaiStruct, k) and not isinstance(getattr(self, k), type)
27+
)
1728

1829
class KaitaiStruct(object):
1930
def __init__(self, stream):
@@ -25,6 +36,16 @@ def __enter__(self):
2536
def __exit__(self, *args, **kwargs):
2637
self.close()
2738

39+
def __repr__(self):
40+
return "".join(
41+
(
42+
self.__class__.__name__,
43+
"(",
44+
", ".join( repr_generator_for_all_props(self) ),
45+
")"
46+
)
47+
)
48+
2849
def close(self):
2950
self._io.close()
3051

0 commit comments

Comments
 (0)