diff options
-rw-r--r-- | Doc/library/collections.rst | 18 | ||||
-rw-r--r-- | Lib/test/test_import.py | 10 | ||||
-rw-r--r-- | Modules/_cursesmodule.c | 13 | ||||
-rw-r--r-- | PC/VS8.0/_ctypes.vcproj | 1 | ||||
-rw-r--r-- | PCbuild/_ctypes.vcproj | 3 | ||||
-rw-r--r-- | Python/import.c | 10 | ||||
-rw-r--r-- | Tools/buildbot/build-amd64.bat | 5 | ||||
-rw-r--r-- | Tools/buildbot/clean-amd64.bat | 7 | ||||
-rw-r--r-- | 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 @@ <Tool
Name="VCCustomBuildTool"
CommandLine="ml64 /nologo /c /Fo "$(IntDir)\win64.obj" "$(InputPath)"
"
+ Outputs="$(IntDir)\win64.obj"
/>
</FileConfiguration>
<FileConfiguration
diff --git a/PCbuild/_ctypes.vcproj b/PCbuild/_ctypes.vcproj index f923ca0..d654a9b 100644 --- a/PCbuild/_ctypes.vcproj +++ b/PCbuild/_ctypes.vcproj @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" - Version="9,00" + Version="9.00" Name="_ctypes" ProjectGUID="{0E9791DB-593A-465F-98BC-681011311618}" RootNamespace="_ctypes" @@ -643,6 +643,7 @@ <Tool Name="VCCustomBuildTool" CommandLine="ml64 /nologo /c /Fo "$(IntDir)\win64.obj" "$(InputPath)"
" + Outputs="$(IntDir)\win64.obj" /> </FileConfiguration> <FileConfiguration diff --git a/Python/import.c b/Python/import.c index 6500f23..f9d4246 100644 --- a/Python/import.c +++ b/Python/import.c @@ -2000,6 +2000,16 @@ import_module_level(char *name, PyObject *globals, PyObject *locals, Py_ssize_t buflen = 0; PyObject *parent, *head, *next, *tail; + if (strchr(name, '/') != NULL +#ifdef MS_WINDOWS + || strchr(name, '\\') != NULL +#endif + ) { + PyErr_SetString(PyExc_ImportError, + "Import by filename is not supported."); + return NULL; + } + parent = get_parent(globals, buf, &buflen, level); if (parent == NULL) return NULL; diff --git a/Tools/buildbot/build-amd64.bat b/Tools/buildbot/build-amd64.bat index cddd3dd..b74086e 100644 --- a/Tools/buildbot/build-amd64.bat +++ b/Tools/buildbot/build-amd64.bat @@ -1,6 +1,5 @@ @rem Used by the buildbot "compile" step. -setlocal cmd /c Tools\buildbot\external-amd64.bat -call "%VS71COMNTOOLS%vsvars32.bat" +call "%VS90COMNTOOLS%vsvars32.bat" REM cmd /q/c Tools\buildbot\kill_python.bat -devenv.com /build ReleaseAMD64 PC\VS7.1\pcbuild.sln +vcbuild PCbuild\pcbuild.sln "Debug|x64" diff --git a/Tools/buildbot/clean-amd64.bat b/Tools/buildbot/clean-amd64.bat index 585476a..0fc3617 100644 --- a/Tools/buildbot/clean-amd64.bat +++ b/Tools/buildbot/clean-amd64.bat @@ -1,6 +1,7 @@ @rem Used by the buildbot "clean" step. -call "%VS71COMNTOOLS%vsvars32.bat" -cd PC\VS7.1 +call "%VS90COMNTOOLS%vsvars32.bat" +cd PCbuild @echo Deleting .pyc/.pyo files ... del /s Lib\*.pyc Lib\*.pyo -devenv.com /clean ReleaseAMD64 pcbuild.sln +vcbuild /clean pcbuild.sln "Release|x64" +vcbuild /clean pcbuild.sln "Debug|x64" diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat index ec9e6b6..3e5c859 100644 --- a/Tools/buildbot/external-amd64.bat +++ b/Tools/buildbot/external-amd64.bat @@ -1,50 +1,43 @@ @rem Fetches (and builds if necessary) external dependencies -setlocal -@rem need this so that 'devenv' is found -call "%VS71COMNTOOLS%vsvars32.bat" -@rem set the build environment -call "%MSSdk%\SetEnv" /XP64 /RETAIL +@REM XXX FIXME - building for x64 disabled for now. @rem Assume we start inside the Python source directory -for %%i in (.) do set CWD=%%~fi cd .. - -@rem sqlite -if not exist sqlite-source-3.3.4 ( - svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 - if exist %CWD%\PCbuild\sqlite3.dll del %CWD%\PCbuild\sqlite3.dll -) -if not exist %CWD%\PCbuild\sqlite3.dll ( - cd sqlite-source-3.3.4\amd64 - cl ..\*.c - link /def:..\sqlite3.def /dll *.obj /out:sqlite3.dll bufferoverflowU.lib - cd ..\.. - copy sqlite-source-3.3.4\amd64\sqlite3.dll %CWD%\PCbuild -) +call "%VS90COMNTOOLS%vsvars32.bat" @rem bzip if not exist bzip2-1.0.3 svn export http://svn.python.org/projects/external/bzip2-1.0.3 -if not exist bzip2-1.0.3\libbz2.lib ( - cd bzip2-1.0.3 - nmake /f makefile.msc CFLAGS="-DWIN32 -MD -Ox -D_FILE_OFFSET_BITS=64 -nologo /GS-" - cd .. -) @rem Sleepycat db if not exist db-4.4.20 svn export http://svn.python.org/projects/external/db-4.4.20 -if not exist "db-4.4.20\build_win32\Release_AMD64\libdb44s.lib" ( - cd db-4.4.20\build_win32 - devenv Berkeley_DB.sln /build "Release AMD64" /project db_static /useenv - cd ..\.. -) +@REM if not exist db-4.4.20\build_win32\debug\libdb44sd.lib ( +@REM vcbuild db-4.4.20\build_win32\Berkeley_DB.sln /build Debug /project db_static +@REM ) @rem OpenSSL -if not exist openssl-0.9.8a svn export http://svn.python.org/projects/external/openssl-0.9.8a +if not exist openssl-0.9.8g ( + if exist openssl-0.9.8a rd /s/q openssl-0.9.8a + svn export http://svn.python.org/projects/external/openssl-0.9.8g +) @rem tcltk -if not exist tcl8.4.12 ( +if not exist tcl8.4.16 ( if exist tcltk rd /s/q tcltk - svn export http://svn.python.org/projects/external/tcl8.4.12 - svn export http://svn.python.org/projects/external/tk8.4.12 + if exist tcl8.4.12 rd /s/q tcl8.4.12 + if exist tk8.4.12 rd /s/q tk8.4.12 + svn export http://svn.python.org/projects/external/tcl8.4.16 + svn export http://svn.python.org/projects/external/tk8.4.16 +@REM cd tcl8.4.16\win +@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 +@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 INSTALLDIR=..\..\tcltk install +@REM cd ..\.. +@REM cd tk8.4.16\win +@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 TCLDIR=..\..\tcl8.4.16 +@REM nmake -f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 TCLDIR=..\..\tcl8.4.16 INSTALLDIR=..\..\tcltk install +@REM cd ..\.. ) + +@rem sqlite +if not exist sqlite-source-3.3.4 svn export http://svn.python.org/projects/external/sqlite-source-3.3.4 +@REM if not exist build\PCbuild\sqlite3.dll copy sqlite-source-3.3.4\sqlite3.dll build\PCbuild |