cbor2
cbor2 copied to clipboard
Re-expose `default_encoders` and allow changing them in `CBOREncoder` again
Things to check first
- [X] I have searched the existing issues and didn't find my feature already requested there
Feature description
Please, re-expose default_encoders
and probably other similar attributes that were public before version 5.5.0 and allow overriding default_encoders
in CBOREncoder
. A new __init__
parameter for it would be nice.
Use case
encoders = cbor2.encoders.default_encoders.copy()
if abridged:
encoders[bytes] = _t.cast(_t.Any, self.encode_cbor_abridged)
encoders[str] = _t.cast(_t.Any, self.encode_cbor_abridged)
self.encoder = _cbor2.CBOREncoder(_io.BytesIO(), default = self.encode_cbor)
self.encoder._encoders = encoders
(I want to use self.encode_cbor_abridged
for long strings and bytes when abbreviation is enabled, default_encoders
for all the default things, and self.encode_cbor
for my custom stuff)
after 5.5.0 default_encoders
and such are no longer exposed as a public interface and CBOREncoder()._encoders
is now read-only.