Hello!  I think this sounds alright to me -- I noticed that your draft
PR didn't delete the get_/set_props methods.  Is there a mechanism we
can use to mark them as deprecated for the length of one major release
before removing them?

I have no objection to improving the Python API :D   Your PR is pretty readable!

All my best, Ryan

On Sat, Jul 29, 2023 at 2:02 AM Michael A. Smith <[email protected]> wrote:
>
> 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