chiark / gitweb /
catacomb/__init__.py: Abstract out common printing for `KeyData' subclasses.
authorMark Wooding <mdw@distorted.org.uk>
Mon, 1 May 2017 00:38:30 +0000 (01:38 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 4 May 2017 23:59:10 +0000 (00:59 +0100)
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

index 28b4f85dfd6cd25988801809ff2f9f090781dffa..64f07c32a511a7ae05409e6c8fee13c6419ba778 100644 (file)
@@ -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: