From 454f37bec202f1a71607efdbd40549196d6404c4 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Thu, 10 Jan 2008 00:10:02 +0000 Subject: Merged revisions 59864-59882 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r59866 | raymond.hettinger | 2008-01-09 04:02:23 +0100 (Wed, 09 Jan 2008) | 1 line Syntax highlighting only works when >>> lines are accompanied by ... lines ........ r59867 | fred.drake | 2008-01-09 04:11:28 +0100 (Wed, 09 Jan 2008) | 2 lines minor cleaning ........ r59868 | raymond.hettinger | 2008-01-09 04:13:20 +0100 (Wed, 09 Jan 2008) | 1 line Fix typo ........ r59869 | thomas.heller | 2008-01-09 12:19:19 +0100 (Wed, 09 Jan 2008) | 1 line Set the output file in the _ctypes Debug|x64 configuration. ........ r59870 | andrew.kuchling | 2008-01-09 13:27:41 +0100 (Wed, 09 Jan 2008) | 1 line Related to patch #1114: fix another place where attr_t is assumed to be a long ........ r59873 | christian.heimes | 2008-01-09 15:46:10 +0100 (Wed, 09 Jan 2008) | 1 line vs9to8 sync ........ r59876 | christian.heimes | 2008-01-09 20:56:33 +0100 (Wed, 09 Jan 2008) | 1 line Fixed #1776. __import__() no longer imports modules by file name ........ r59879 | thomas.heller | 2008-01-09 22:35:04 +0100 (Wed, 09 Jan 2008) | 6 lines Change amd64 buildbot scripts to use Visual Studio 2008, and to use the required versions of external sources. External sources are not yet built, so the build-step fails to built some targets. ........ r59880 | thomas.heller | 2008-01-09 22:35:43 +0100 (Wed, 09 Jan 2008) | 6 lines Change amd64 buildbot scripts to use Visual Studio 2008, and to use the required versions of external sources. External sources are not yet built, so the build-step fails to built some targets. ........ --- Doc/library/collections.rst | 18 ++++++------ Lib/test/test_import.py | 10 +++++++ Modules/_cursesmodule.c | 13 ++++++--- PC/VS8.0/_ctypes.vcproj | 1 + PCbuild/_ctypes.vcproj | 3 +- Python/import.c | 10 +++++++ Tools/buildbot/build-amd64.bat | 5 ++-- Tools/buildbot/clean-amd64.bat | 7 +++-- Tools/buildbot/external-amd64.bat | 59 +++++++++++++++++---------------------- 9 files changed, 73 insertions(+), 53 deletions(-) diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 0c440d6..6f2961a 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -510,7 +510,7 @@ field names, the method and attribute names start with an underscore. Point(x=33, y=22) >>> for partnum, record in inventory.items(): - inventory[partnum] = record._replace(price=newprices[partnum], timestamp=time.now()) + ... inventory[partnum] = record._replace(price=newprices[partnum], timestamp=time.now()) .. attribute:: somenamedtuple._fields @@ -525,7 +525,7 @@ field names, the method and attribute names start with an underscore. >>> Color = namedtuple('Color', 'red green blue') >>> Pixel = namedtuple('Pixel', Point._fields + Color._fields) >>> Pixel(11, 22, 128, 255, 0) - Pixel(x=11, y=22, red=128, green=255, blue=0)' + Pixel(x=11, y=22, red=128, green=255, blue=0) To retrieve a field whose name is stored in a string, use the :func:`getattr` function:: @@ -544,14 +544,14 @@ functionality with a subclass. Here is how to add a calculated field and a fixed-width print format:: >>> class Point(namedtuple('Point', 'x y')): - @property - def hypot(self): - return (self.x ** 2 + self.y ** 2) ** 0.5 - def __str__(self): - return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot) + ... @property + ... def hypot(self): + ... return (self.x ** 2 + self.y ** 2) ** 0.5 + ... def __str__(self): + ... return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot) >>> for p in Point(3,4), Point(14,5), Point(9./7,6): - print p + ... print p Point: x= 3.000 y= 4.000 hypot= 5.000 Point: x=14.000 y= 5.000 hypot=14.866 @@ -560,7 +560,7 @@ a fixed-width print format:: Another use for subclassing is to replace performance critcal methods with faster versions that bypass error-checking and that localize variable access:: - >>> class Point(namedtuple('Point', 'x y')): + class Point(namedtuple('Point', 'x y')): _make = classmethod(tuple.__new__) def _replace(self, _map=map, **kwds): return self._make(_map(kwds.get, ('x', 'y'), self)) diff --git a/Lib/test/test_import.py b/Lib/test/test_import.py index 760713e..d8f2d51 100644 --- a/Lib/test/test_import.py +++ b/Lib/test/test_import.py @@ -221,6 +221,16 @@ class ImportTest(unittest.TestCase): del sys.modules[TESTFN] + def test_importbyfilename(self): + path = os.path.abspath(TESTFN) + try: + __import__(path) + except ImportError as err: + self.assertEqual("Import by filename is not supported.", + err.args[0]) + else: + self.fail("import by path didn't raise an exception") + class PathsTests(unittest.TestCase): SAMPLES = ('test', 'test\u00e4\u00f6\u00fc\u00df', 'test\u00e9\u00e8', 'test\u00b0\u00b3\u00b2') diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c index 57f9058..a4536e4 100644 --- a/Modules/_cursesmodule.c +++ b/Modules/_cursesmodule.c @@ -677,25 +677,30 @@ PyCursesWindow_ChgAt(PyCursesWindowObject *self, PyObject *args) int num = -1; short color; attr_t attr = A_NORMAL; + long lattr; int use_xy = FALSE; switch (PyTuple_Size(args)) { case 1: - if (!PyArg_ParseTuple(args,"l;attr", &attr)) + if (!PyArg_ParseTuple(args,"l;attr", &lattr)) return NULL; + attr = lattr; break; case 2: - if (!PyArg_ParseTuple(args,"il;n,attr", &num, &attr)) + if (!PyArg_ParseTuple(args,"il;n,attr", &num, &lattr)) return NULL; + attr = lattr; break; case 3: - if (!PyArg_ParseTuple(args,"iil;int,int,attr", &y, &x, &attr)) + if (!PyArg_ParseTuple(args,"iil;int,int,attr", &y, &x, &lattr)) return NULL; + attr = lattr; use_xy = TRUE; break; case 4: - if (!PyArg_ParseTuple(args,"iiil;int,int,n,attr", &y, &x, &num, &attr)) + if (!PyArg_ParseTuple(args,"iiil;int,int,n,attr", &y, &x, &num, &lattr)) return NULL; + attr = lattr; use_xy = TRUE; break; default: diff --git a/PC/VS8.0/_ctypes.vcproj b/PC/VS8.0/_ctypes.vcproj index bb68ad9..931d5fc 100644 --- a/PC/VS8.0/_ctypes.vcproj +++ b/PC/VS8.0/_ctypes.vcproj @@ -643,6 +643,7 @@