cpython: 5c60dd518182 (original) (raw)
Mercurial > cpython
changeset 91373:5c60dd518182 3.4
Issue 21832: Require named tuple inputs to be exact strings
Raymond Hettinger python@rcn.com | |
---|---|
date | Tue, 24 Jun 2014 15:20:55 -0700 |
parents | 3bedc1846202 |
children | f0f6650ba35e fa2638e5370f |
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)