diff options
author | Pablo Galindo <Pablogsal@gmail.com> | 2021-04-21 11:41:19 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-21 11:41:19 (GMT) |
commit | b0544ba77cf86074fb1adde00558c67ca75eeea1 (patch) | |
tree | 5168d0dc8da1360feabecfbc7c721b3fa9a38b11 /Lib/dataclasses.py | |
parent | d35eef3b904b62e9c775bf3764ab0a0611f5a860 (diff) | |
download | cpython-b0544ba77cf86074fb1adde00558c67ca75eeea1.zip cpython-b0544ba77cf86074fb1adde00558c67ca75eeea1.tar.gz cpython-b0544ba77cf86074fb1adde00558c67ca75eeea1.tar.bz2 |
bpo-38605: Revert making 'from __future__ import annotations' the default (GH-25490)
This reverts commits 044a1048ca93d466965afc027b91a5a9eb9ce23c and 1be456ae9d53bb1cba2b24fc86175c282d1c2169, adapting the code to changes that happened after it.
Diffstat (limited to 'Lib/dataclasses.py')
-rw-r--r-- | Lib/dataclasses.py | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index 1b95bb9..036349b 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -413,10 +413,8 @@ def _create_fn(name, args, body, *, globals=None, locals=None, ns = {} exec(txt, globals, ns) - func = ns['__create_fn__'](**locals) - for arg, annotation in func.__annotations__.copy().items(): - func.__annotations__[arg] = locals[annotation] - return func + return ns['__create_fn__'](**locals) + def _field_assign(frozen, name, value, self_name): # If we're a frozen class, then assign to our fields in __init__ @@ -667,11 +665,6 @@ def _is_type(annotation, cls, a_module, a_type, is_type_predicate): # a eval() penalty for every single field of every dataclass # that's defined. It was judged not worth it. - # Strip away the extra quotes as a result of double-stringifying when the - # 'annotations' feature became default. - if annotation.startswith(("'", '"')) and annotation.endswith(("'", '"')): - annotation = annotation[1:-1] - match = _MODULE_IDENTIFIER_RE.match(annotation) if match: ns = None @@ -1020,7 +1013,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen, if not getattr(cls, '__doc__'): # Create a class doc-string. cls.__doc__ = (cls.__name__ + - str(inspect.signature(cls)).replace(' -> NoneType', '')) + str(inspect.signature(cls)).replace(' -> None', '')) if match_args: _set_new_attribute(cls, '__match_args__', |