Please take a look at AVRO-3816. I'm proposing a backwards
incompatible change to the python schema implementation. So far I have
a PR in draft that I believe _is_ backwards-compatible, but is just a
step on the way - it doesn't solve the problem entirely.

I'd like to get to the following advantages:

1. The standard and canonical properties are typed, able to benefit
both core developers and api users.
2. The standard and canonical properties are slotted
(https://docs.python.org/3/reference/datamodel.html#slots), providing
a space savings when only standard attributes are in use.
3. Custom properties are part of the schema instance's __dict__
(dunder-dict) attribute, so standard python introspection tools like
dir() and attribute access just work.

To clarify, I don't think this will be backwards incompatible for
people who just use the python implementation. The only
incompatibility here is that I'm proposing to get rid of a handful of
public methods like get_prop and set_prop, and change the underlying
implementation. If any API users are directly accessing those methods,
that will need to change.

What do you think?

Reply via email to