branch | stable |
changeset 42480 | b6387a65851d |
parent 40124 | b638219a23c3 |
child 43076 | 2372284d9457 |
--- a/mercurial/utils/cborutil.py Fri May 31 22:37:14 2019 -0700 +++ b/mercurial/utils/cborutil.py Sun Jun 16 12:31:07 2019 +0900 @@ -214,6 +214,14 @@ fn = STREAM_ENCODERS.get(v.__class__) if not fn: + # handle subtypes such as encoding.localstr and util.sortdict + for ty in STREAM_ENCODERS: + if not isinstance(v, ty): + continue + fn = STREAM_ENCODERS[ty] + break + + if not fn: raise ValueError('do not know how to encode %s' % type(v)) return fn(v)