mirror of
https://github.com/python/cpython.git
synced 2025-10-10 00:43:41 +00:00
bpo-38605: Revert making 'from __future__ import annotations' the default (GH-25490)
This reverts commits044a1048ca
and1be456ae9d
, adapting the code to changes that happened after it.
This commit is contained in:
parent
d35eef3b90
commit
b0544ba77c
32 changed files with 436 additions and 523 deletions
|
@ -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__',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue