Skip to content

Re-expose default_encoders and allow changing them in CBOREncoder again #226

@oxij

Description

@oxij

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

Before 5.5.0 in pwebarc I did

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions