cpython: 59829d7b7838 (original) (raw)

Mercurial > cpython

changeset 106221:59829d7b7838 3.5

Issue #28556: allow default values in class form of NamedTuple -- Jelle Zijlstra [#28556]

Guido van Rossum guido@python.org
date Wed, 18 Jan 2017 08:03:50 -0800
parents f2fe00653d07
children 2159f36ccd6b 87e8139420ed
files Lib/test/test_typing.py Lib/typing.py
diffstat 2 files changed, 42 insertions(+), 1 deletions(-)[+] [-] Lib/test/test_typing.py 26 Lib/typing.py 17

line wrap: on

line diff

--- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -1400,6 +1400,10 @@ class G(Generic[T]): class CoolEmployee(NamedTuple): name: str cool: int + +class CoolEmployeeWithDefault(NamedTuple):

""" if PY36: @@ -1960,6 +1964,28 @@ class NamedTupleTests(BaseTestCase): self.assertIs(CoolEmployee._field_types, CoolEmployee.annotations) @skipUnless(PY36, 'Python 3.6 required')

+

+

+class NonDefaultAfterDefault(NamedTuple):

+""") +

--- a/Lib/typing.py +++ b/Lib/typing.py @@ -1959,7 +1959,22 @@ class NamedTupleMeta(type): raise TypeError("Class syntax for NamedTuple is only supported" " in Python 3.6+") types = ns.get('annotations', {})

class NamedTuple(metaclass=NamedTupleMeta): """Typed version of namedtuple.