summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-04-02 22:31:59 (GMT)
committerRaymond Hettinger <python@rcn.com>2009-04-02 22:31:59 (GMT)
commit56145242930f98cbb1553888566d30a98158bfc8 (patch)
tree977bef7779f6036cbbcb7cff6b1e7e0aed5d8693 /Lib
parentc26d43966d8d54fc90b254b60bed2f33f693c155 (diff)
downloadcpython-56145242930f98cbb1553888566d30a98158bfc8.zip
cpython-56145242930f98cbb1553888566d30a98158bfc8.tar.gz
cpython-56145242930f98cbb1553888566d30a98158bfc8.tar.bz2
Have namedtuple's field renamer assign names that
are consistent with the corresponding tuple index.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/collections.py2
-rw-r--r--Lib/test/test_collections.py12
2 files changed, 7 insertions, 7 deletions
diff --git a/Lib/collections.py b/Lib/collections.py
index 002ce97..786a9f7 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -174,7 +174,7 @@ def namedtuple(typename, field_names, verbose=False, rename=False):
if (not all(c.isalnum() or c=='_' for c in name) or _iskeyword(name)
or not name or name[0].isdigit() or name.startswith('_')
or name in seen):
- names[i] = '_%d' % (i+1)
+ names[i] = '_%d' % i
seen.add(name)
field_names = tuple(names)
for name in (typename,) + field_names:
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index e8d72ee..c471361 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -51,12 +51,12 @@ class TestNamedTuple(unittest.TestCase):
def test_name_fixer(self):
for spec, renamed in [
- [('efg', 'g%hi'), ('efg', '_2')], # field with non-alpha char
- [('abc', 'class'), ('abc', '_2')], # field has keyword
- [('8efg', '9ghi'), ('_1', '_2')], # field starts with digit
- [('abc', '_efg'), ('abc', '_2')], # field with leading underscore
- [('abc', 'efg', 'efg', 'ghi'), ('abc', 'efg', '_3', 'ghi')], # duplicate field
- [('abc', '', 'x'), ('abc', '_2', 'x')], # fieldname is a space
+ [('efg', 'g%hi'), ('efg', '_1')], # field with non-alpha char
+ [('abc', 'class'), ('abc', '_1')], # field has keyword
+ [('8efg', '9ghi'), ('_0', '_1')], # field starts with digit
+ [('abc', '_efg'), ('abc', '_1')], # field with leading underscore
+ [('abc', 'efg', 'efg', 'ghi'), ('abc', 'efg', '_2', 'ghi')], # duplicate field
+ [('abc', '', 'x'), ('abc', '_1', 'x')], # fieldname is a space
]:
self.assertEqual(namedtuple('NT', spec, rename=True)._fields, renamed)