From: Jelle Zijlstra Date: Tue, 24 Sep 2024 21:02:18 +0000 (-0700) Subject: dataclasses: Avoid using private class (#124465) X-Git-Tag: v3.14.0a1~360 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=950fab46ad3a1960aa289d2d1de55447b88e25d7;p=thirdparty%2FPython%2Fcpython.git dataclasses: Avoid using private class (#124465) typing.get_origin() does what we need here, without reaching into typing internals. This shouldn't change any behavior (so I am going to skip news), but it sets a good example for other users introspecting typing objects. --- diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index ac7d40cf2cac..6255d8980974 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -690,11 +690,8 @@ def _frozen_get_del_attr(cls, fields, func_builder): def _is_classvar(a_type, typing): - # This test uses a typing internal class, but it's the best way to - # test if this is a ClassVar. return (a_type is typing.ClassVar - or (type(a_type) is typing._GenericAlias - and a_type.__origin__ is typing.ClassVar)) + or (typing.get_origin(a_type) is typing.ClassVar)) def _is_initvar(a_type, dataclasses):