From 849e8a20349a349a0b4704b531370cacbfd44f44 Mon Sep 17 00:00:00 2001 Message-Id: <849e8a20349a349a0b4704b531370cacbfd44f44.1716265610.git.mdw@distorted.org.uk> From: Mark Wooding Date: Mon, 1 May 2017 01:38:30 +0100 Subject: [PATCH] catacomb/__init__.py: Abstract out common printing for `KeyData' subclasses. Organization: Straylight/Edgeware From: Mark Wooding Introduce `_guts' to return the thing that each subclass encapsulates. `KeyDataStructured' is a special snowflake which I'm willing to handle separately. --- catacomb/__init__.py | 55 ++++++++++---------------------------------- 1 file changed, 12 insertions(+), 43 deletions(-) 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: -- [mdw]