diff options
author | Eric V. Smith <ericvsmith@users.noreply.github.com> | 2018-05-16 02:44:27 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-16 02:44:27 (GMT) |
commit | 2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9 (patch) | |
tree | 72139540fcd8f6824c8265cb7ed4515b3d3a0c37 /Lib/test/dataclass_module_1.py | |
parent | d8dcd57edb88ce57063e5c2b85fe0ee1abb1ce8b (diff) | |
download | cpython-2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9.zip cpython-2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9.tar.gz cpython-2a7bacbd913cf2bf568b3c0f85a758946d3cf4e9.tar.bz2 |
bpo-33453: Handle string type annotations in dataclasses. (GH-6768)
Diffstat (limited to 'Lib/test/dataclass_module_1.py')
-rw-r--r-- | Lib/test/dataclass_module_1.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Lib/test/dataclass_module_1.py b/Lib/test/dataclass_module_1.py new file mode 100644 index 0000000..87a33f8 --- /dev/null +++ b/Lib/test/dataclass_module_1.py @@ -0,0 +1,32 @@ +#from __future__ import annotations +USING_STRINGS = False + +# dataclass_module_1.py and dataclass_module_1_str.py are identical +# except only the latter uses string annotations. + +import dataclasses +import typing + +T_CV2 = typing.ClassVar[int] +T_CV3 = typing.ClassVar + +T_IV2 = dataclasses.InitVar[int] +T_IV3 = dataclasses.InitVar + +@dataclasses.dataclass +class CV: + T_CV4 = typing.ClassVar + cv0: typing.ClassVar[int] = 20 + cv1: typing.ClassVar = 30 + cv2: T_CV2 + cv3: T_CV3 + not_cv4: T_CV4 # When using string annotations, this field is not recognized as a ClassVar. + +@dataclasses.dataclass +class IV: + T_IV4 = dataclasses.InitVar + iv0: dataclasses.InitVar[int] + iv1: dataclasses.InitVar + iv2: T_IV2 + iv3: T_IV3 + not_iv4: T_IV4 # When using string annotations, this field is not recognized as an InitVar. |