Split out encoding/formatting unhandler error to method, for overridability

This commit is contained in:
Tony Garnock-Jones 2022-01-11 06:29:18 +01:00
parent 602dea1ac6
commit 8c4fedac0a
2 changed files with 12 additions and 4 deletions

View File

@ -202,8 +202,12 @@ class Encoder(BinaryCodec):
except TypeError:
i = None
if i is None:
raise TypeError('Cannot preserves-encode: ' + repr(v))
self.encodevalues(5, i)
self.cannot_encode(v)
else:
self.encodevalues(5, i)
def cannot_encode(self, v):
raise TypeError('Cannot preserves-encode: ' + repr(v))
def encode(v, **kwargs):
e = Encoder(**kwargs)

View File

@ -391,8 +391,12 @@ class Formatter(TextCodec):
except TypeError:
i = None
if i is None:
raise TypeError('Cannot preserves-format: ' + repr(v))
self.write_seq('[', ']', i)
self.cannot_format(v)
else:
self.write_seq('[', ']', i)
def cannot_format(self, v):
raise TypeError('Cannot preserves-format: ' + repr(v))
def stringify(v, **kwargs):
e = Formatter(**kwargs)