From 8e4560a9da6a02aa157dd7df8bd0be0d258c0a73 Mon Sep 17 00:00:00 2001 From: "Eric V. Smith" Date: Wed, 21 Mar 2018 17:10:22 -0400 Subject: [PATCH] Add 'Field' to dataclasses.__all__. (GH-6182) - Add missing 'Field' to __all__. - Improve tests to catch this. --- Lib/dataclasses.py | 3 ++- Lib/test/test_dataclasses.py | 9 +++++---- .../Library/2018-03-21-16-52-26.bpo-33116.Tvzerj.rst | 1 + 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2018-03-21-16-52-26.bpo-33116.Tvzerj.rst diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index d6164324914..41b5b5da325 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -5,6 +5,7 @@ import inspect __all__ = ['dataclass', 'field', + 'Field', 'FrozenInstanceError', 'InitVar', 'MISSING', @@ -513,7 +514,7 @@ def _get_field(cls, a_name, a_type): # and InitVars are also returned, but marked as such (see # f._field_type). - # If the default value isn't derived from field, then it's + # If the default value isn't derived from Field, then it's # only a normal default value. Convert it to a Field(). default = getattr(cls, a_name, MISSING) if isinstance(default, Field): diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index 9b5aad25745..69ace36c2c5 100755 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -1,7 +1,8 @@ -from dataclasses import ( - dataclass, field, FrozenInstanceError, fields, asdict, astuple, - make_dataclass, replace, InitVar, Field, MISSING, is_dataclass, -) +# Deliberately use "from dataclasses import *". Every name in __all__ +# is tested, so they all must be present. This is a way to catch +# missing ones. + +from dataclasses import * import pickle import inspect diff --git a/Misc/NEWS.d/next/Library/2018-03-21-16-52-26.bpo-33116.Tvzerj.rst b/Misc/NEWS.d/next/Library/2018-03-21-16-52-26.bpo-33116.Tvzerj.rst new file mode 100644 index 00000000000..90072d8e303 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-03-21-16-52-26.bpo-33116.Tvzerj.rst @@ -0,0 +1 @@ +Add 'Field' to dataclasses.__all__.