From: Mark Wooding Date: Mon, 1 May 2017 00:38:30 +0000 (+0100) Subject: catacomb/__init__.py: Abstract out common printing for `KeyData' subclasses. X-Git-Tag: 1.2.0~26 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb-python/commitdiff_plain/849e8a20349a349a0b4704b531370cacbfd44f44 catacomb/__init__.py: Abstract out common printing for `KeyData' subclasses. Introduce `_guts' to return the thing that each subclass encapsulates. `KeyDataStructured' is a special snowflake which I'm willing to handle separately. --- diff --git a/catacomb/__init__.py b/catacomb/__init__.py index 28b4f85..64f07c3 100644 --- a/catacomb/__init__.py +++ b/catacomb/__init__.py @@ -470,68 +470,37 @@ class _tmp: _augment(KeyAttributes, _tmp) class _tmp: - def __repr__(me): return 'KeyDataBinary(%r, %r)' % \ - (me.bin, me.writeflags(me.flags)) + def __repr__(me): + return '%s(%s, %r)' % \ + (type(me).__name__, repr(me._guts()), me.writeflags(me.flags)) def _repr_pretty_(me, pp, cyclep): ind = _pp_bgroup_tyname(pp, me) if cyclep: pp.text('...') else: - pp.pretty(me.bin); pp.text(','); pp.breakable() + pp.pretty(me.guts()); pp.text(','); pp.breakable() pp.pretty(me.writeflags(me.flags)) pp.end_group(ind, ')') +_augment(KeyData, _tmp) + +class _tmp: + def _guts(me): return me.bin _augment(KeyDataBinary, _tmp) class _tmp: - def __repr__(me): return 'KeyDataEncrypted(%r, %r)' % \ - (me.ct, me.writeflags(me.flags)) - def _repr_pretty_(me, pp, cyclep): - ind = _pp_bgroup_tyname(pp, me) - if cyclep: - pp.text('...') - else: - pp.pretty(me.ct); pp.text(','); pp.breakable() - pp.pretty(me.writeflags(me.flags)) - pp.end_group(ind, ')') + def _guts(me): return me.ct _augment(KeyDataEncrypted, _tmp) class _tmp: - def __repr__(me): return 'KeyDataMP(%r, %r)' % \ - (me.mp, me.writeflags(me.flags)) - def _repr_pretty_(me, pp, cyclep): - ind = _pp_bgroup_tyname(pp, me) - if cyclep: - pp.text('...') - else: - pp.pretty(me.mp); pp.text(','); pp.breakable() - pp.pretty(me.writeflags(me.flags)) - pp.end_group(ind, ')') + def _guts(me): return me.mp _augment(KeyDataMP, _tmp) class _tmp: - def __repr__(me): return 'KeyDataString(%r)' % \ - (me.str, me.writeflags(me.flags)) - def _repr_pretty_(me, pp, cyclep): - ind = _pp_bgroup_tyname(pp, me) - if cyclep: - pp.text('...') - else: - pp.pretty(me.str); pp.text(','); pp.breakable() - pp.pretty(me.writeflags(me.flags)) - pp.end_group(ind, ')') + def _guts(me): return me.str _augment(KeyDataString, _tmp) class _tmp: - def __repr__(me): return 'KeyDataECPt(%r)' % \ - (me.ecpt, me.writeflags(me.flags)) - def _repr_pretty_(me, pp, cyclep): - ind = _pp_bgroup_tyname(pp, me) - if cyclep: - pp.text('...') - else: - pp.pretty(me.ecpt); pp.text(','); pp.breakable() - pp.pretty(me.writeflags(me.flags)) - pp.end_group(ind, ')') + def _guts(me): return me.ecpt _augment(KeyDataECPt, _tmp) class _tmp: