cpython: c238d2899d47 (original) (raw)
Mercurial > cpython
changeset 91367:c238d2899d47 3.4
Issue 21832: Require named tuple inputs to be exact strings
Raymond Hettinger python@rcn.com | |
---|---|
date | Tue, 24 Jun 2014 13:44:03 -0700 |
parents | a941bb617c2a |
children | 2f3a0ad5fe1f 73cb193a6666 |
files | Lib/collections/__init__.py |
diffstat | 1 files changed, 3 insertions(+), 0 deletions(-)[+] [-] Lib/collections/__init__.py 3 |
line wrap: on
line diff
--- a/Lib/collections/init.py +++ b/Lib/collections/init.py @@ -323,6 +323,7 @@ def namedtuple(typename, field_names, ve if isinstance(field_names, str): field_names = field_names.replace(',', ' ').split() field_names = list(map(str, field_names))
@@ -333,6 +334,8 @@ def namedtuple(typename, field_names, ve field_names[index] = '_%d' % index seen.add(name) for name in [typename] + field_names:
if type(name) != str:[](#l1.15)
raise TypeError('Type names and field names must be strings')[](#l1.16) if not name.isidentifier():[](#l1.17) raise ValueError('Type names and field names must be valid '[](#l1.18) 'identifiers: %r' % name)[](#l1.19)