This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author christian.heimes
Recipients christian.heimes, pablogsal
Date 2021-09-29.11:51:39
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1632916299.97.0.729247269758.issue45319@roundup.psfhosted.org>
In-reply-to
Content
While I was working on a patch to port wrapt to limited API and stable ABI, I noticed a possible regression in __annotations__ PyGetSetDef. It looks like C heap type subclasses no longer inherit the __annotations__ descriptor from a C heap type parent class. A gdb session confirmed that 3.10 no longer calls the WraptObjectProxy_set_annotations setter of the parent class while 3.9 does.

I had to add 

    { "__annotations__",    (getter)WraptObjectProxy_get_annotations,
                            (setter)WraptObjectProxy_set_annotations, 0},

to PyGetSetDef of the child class in order to fix the behavior. Python 3.9 and older work as expected.

You can reproduce the behavior by disabling WRAPT_ANNOTATIONS_GETSET_WORKAROUND and run "tox -e py310-install-extensions". The PR is https://github.com/GrahamDumpleton/wrapt/pull/187.
History
Date User Action Args
2021-09-29 11:51:40christian.heimessetrecipients: + christian.heimes, pablogsal
2021-09-29 11:51:39christian.heimessetmessageid: <1632916299.97.0.729247269758.issue45319@roundup.psfhosted.org>
2021-09-29 11:51:39christian.heimeslinkissue45319 messages
2021-09-29 11:51:39christian.heimescreate