-
Notifications
You must be signed in to change notification settings - Fork 68
Open
Labels
Description
Things to check first
- 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.