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 larry
Recipients Guido.van.Rossum, eric.smith, gvanrossum, larry
Date 2021-04-24.22:26:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1619303202.6.0.216249208116.issue43901@roundup.psfhosted.org>
In-reply-to
Content
I'm please you folks are as supportive as you are of what I'm doing here, given that you seem a little unsure of the details.  I concede that there's a lot going on and it can be hard to keep it all in your head.

The point of this issue / PR is to improve the best practices for 3.10 without breaking the best practices for 3.9 and before.

Best practice in 3.10 is to use inspect.get_annotations(), and failing that, three-argument getattr(), for all annotated objects.  This issue / PR permits that to happen.

Best practices for 3.9 differed between different objects.  For classes, you had no choice but to look in the class dict because of the inheritance problem.  (Either that, or, the elaborate scheme 'attrs' used.)  That code will emphatically _still work_ in 3.10.  We are not breaking backwards compatibility.

So, the best practices in 3.9 and before will still work in 3.10.  But the best practices for 3.10+ are improved because of the work we're doing here and in other places.

My intent was to document the best practices for 3.10+.  If folks think it would be helpful, this same section in the 3.10 docs can also describe best practices for 3.9 and before.
History
Date User Action Args
2021-04-24 22:26:42larrysetrecipients: + larry, gvanrossum, eric.smith, Guido.van.Rossum
2021-04-24 22:26:42larrysetmessageid: <1619303202.6.0.216249208116.issue43901@roundup.psfhosted.org>
2021-04-24 22:26:42larrylinkissue43901 messages
2021-04-24 22:26:42larrycreate