summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2007-12-05 20:18:38 (GMT)
committerChristian Heimes <christian@cheimes.de>2007-12-05 20:18:38 (GMT)
commitb9eccbfe2a90c6e37d0e1c767985933ea79026f8 (patch)
treea41ea633b42df6aa79d99d3814840d88ca51a8b8 /Lib
parenta5ea385bcf5c8f9f9e8229f253f57a4b1052123b (diff)
downloadcpython-b9eccbfe2a90c6e37d0e1c767985933ea79026f8.zip
cpython-b9eccbfe2a90c6e37d0e1c767985933ea79026f8.tar.gz
cpython-b9eccbfe2a90c6e37d0e1c767985933ea79026f8.tar.bz2
Merged revisions 59333-59370 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r59343 | georg.brandl | 2007-12-05 08:02:47 +0100 (Wed, 05 Dec 2007) | 2 lines Fix typo. ........ r59347 | christian.heimes | 2007-12-05 13:31:44 +0100 (Wed, 05 Dec 2007) | 1 line Fixed quoting and paths in the sqlite project file ........ r59348 | christian.heimes | 2007-12-05 13:45:11 +0100 (Wed, 05 Dec 2007) | 1 line Fixed error in regrtest. I must have missed the spot. ........ r59350 | christian.heimes | 2007-12-05 13:49:14 +0100 (Wed, 05 Dec 2007) | 1 line merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError ........ r59352 | christian.heimes | 2007-12-05 13:52:34 +0100 (Wed, 05 Dec 2007) | 1 line Added msg to Misc/NEWS ........ r59354 | andrew.kuchling | 2007-12-05 14:27:20 +0100 (Wed, 05 Dec 2007) | 1 line Spelling fix ........ r59356 | georg.brandl | 2007-12-05 18:56:50 +0100 (Wed, 05 Dec 2007) | 3 lines Add examples to csv, pprint and traceback docs. Written by Ross for GHOP. ........ r59358 | raymond.hettinger | 2007-12-05 19:11:08 +0100 (Wed, 05 Dec 2007) | 1 line Error checking was too aggressive (reported by Chris Tismer) ........ r59359 | georg.brandl | 2007-12-05 19:30:48 +0100 (Wed, 05 Dec 2007) | 2 lines Add examples to re docs. Written for GHOP by Dan Finnie. ........ r59366 | georg.brandl | 2007-12-05 20:49:21 +0100 (Wed, 05 Dec 2007) | 2 lines Fix markup. ........ r59367 | christian.heimes | 2007-12-05 20:57:54 +0100 (Wed, 05 Dec 2007) | 1 line Updated documentation and build_tkinter.py script ........ r59368 | georg.brandl | 2007-12-05 21:03:57 +0100 (Wed, 05 Dec 2007) | 2 lines Another markup fix. ........ r59369 | ronald.oussoren | 2007-12-05 21:07:36 +0100 (Wed, 05 Dec 2007) | 7 lines This "fixes" compilation issues for the Carbon._OSA module on OSX Leopard by purging bindings to OSA's debug API's. Those APIs we're completely unsupported on OSX 10.4 and are no longer available on OSX 10.5. Note that this patches a generated file. This is somewhat acceptable because regenerating the file is non-trivial and wouldn't use system headers anyway. ........ r59370 | christian.heimes | 2007-12-05 21:10:38 +0100 (Wed, 05 Dec 2007) | 1 line Fixed bug #1557 by using popen.communicate() before popen.wait() ........
Diffstat (limited to 'Lib')
-rw-r--r--Lib/collections.py4
-rw-r--r--Lib/distutils/msvc9compiler.py7
-rw-r--r--Lib/test/test_collections.py1
3 files changed, 8 insertions, 4 deletions
diff --git a/Lib/collections.py b/Lib/collections.py
index a553c9f..f5c524b 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -40,7 +40,7 @@ def namedtuple(typename, field_names, verbose=False):
field_names = field_names.replace(',', ' ').split() # names separated by whitespace and/or commas
field_names = tuple(field_names)
for name in (typename,) + field_names:
- if not name.replace('_', '').isalnum():
+ if not all(c.isalnum() or c=='_' for c in name):
raise ValueError('Type names and field names can only contain alphanumeric characters and underscores: %r' % name)
if _iskeyword(name):
raise ValueError('Type names and field names cannot be a keyword: %r' % name)
@@ -48,7 +48,7 @@ def namedtuple(typename, field_names, verbose=False):
raise ValueError('Type names and field names cannot start with a number: %r' % name)
seen_names = set()
for name in field_names:
- if name.startswith('__') and name.endswith('__'):
+ if name.startswith('__') and name.endswith('__') and len(name) > 3:
raise ValueError('Field names cannot start and end with double underscores: %r' % name)
if name in seen_names:
raise ValueError('Encountered duplicate field name: %r' % name)
diff --git a/Lib/distutils/msvc9compiler.py b/Lib/distutils/msvc9compiler.py
index a6cff2c..828d7fb 100644
--- a/Lib/distutils/msvc9compiler.py
+++ b/Lib/distutils/msvc9compiler.py
@@ -254,10 +254,13 @@ def query_vcvarsall(version, arch="x86"):
popen = subprocess.Popen('"%s" %s & set' % (vcvarsall, arch),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
+
+ stdout, stderr = popen.communicate()
if popen.wait() != 0:
- raise IOError(popen.stderr.read())
+ raise IOError(stderr.decode("mbcs"))
- for line in popen.stdout:
+ stdout = stdout.decode("mbcs")
+ for line in stdout.split("\n"):
line = Reg.convert_mbcs(line)
if '=' not in line:
continue
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index 62da9c5..45b4082 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -32,6 +32,7 @@ class TestNamedTuple(unittest.TestCase):
self.assertRaises(ValueError, namedtuple, 'abc', 'efg efg ghi') # duplicate field
namedtuple('Point0', 'x1 y2') # Verify that numbers are allowed in names
+ namedtuple('_', '_ __ ___') # Verify that underscores are allowed
def test_instance(self):
Point = namedtuple('Point', 'x y')