Brett Cannon [Sun, 16 Jun 2013 22:05:54 +0000 (18:05 -0400)]
importlib.abc.SourceLoader.get_source() was re-raising SyntaxError and
UnicodeDecodeError as ImportError. That was over-reaching the point of
raising ImportError in get_source() (which is to signal the source
code was not found when it should have). Conflating the two exceptions
with ImportError could lead to masking errors with the source which
should be known outside of whether there was an error simply getting
the source to begin with.
Brett Cannon [Sun, 16 Jun 2013 18:56:58 +0000 (14:56 -0400)]
Issues #18058, 18057: Make importlib._bootstrap.NamespaceLoader
conform the the InspectLoader ABC. Perk of this is that runpy/-m can
now work with namespace packages.
Brett Cannon [Sun, 16 Jun 2013 17:13:40 +0000 (13:13 -0400)]
Issue #17177: The imp module is pending deprecation.
To make sure there is no issue with code that is both Python 2 and 3
compatible, there are no plans to remove the module any sooner than
Python 4 (unless the community moves to Python 3 solidly before then).
Gregory P. Smith [Sun, 16 Jun 2013 01:14:56 +0000 (18:14 -0700)]
Prevent a possible double close of parent pipe fds when the subprocess
exec runs into an error. Prevent a regular multi-close of the /dev/null
fd when any of stdin, stdout and stderr was set to DEVNULL.
Gregory P. Smith [Sun, 16 Jun 2013 01:04:26 +0000 (18:04 -0700)]
Prevent a possible double close of parent pipe fds when the subprocess
exec runs into an error. Prevent a regular multi-close of the /dev/null
fd when any of stdin, stdout and stderr was set to DEVNULL.
* Add unit test for PyMem_Malloc(0) and PyObject_Malloc(0)
* Add unit test for new get/set allocators functions
* PyObject_Malloc() now falls back on PyMem_Malloc() instead of malloc() if
size is bigger than SMALL_REQUEST_THRESHOLD, and PyObject_Realloc() falls
back on PyMem_Realloc() instead of realloc()
* PyMem_Malloc() and PyMem_Realloc() now always call malloc() and realloc(),
instead of calling PyObject_Malloc() and PyObject_Realloc() in debug mode
Christian Heimes [Fri, 14 Jun 2013 13:01:03 +0000 (15:01 +0200)]
comparing with http://hg.python.org/cpython/
searching for changes
changeset: 84118:98343392fd81
tag: tip
user: Christian Heimes <christian@cheimes.de>
date: Fri Jun 14 14:54:48 2013 +0200
files: PC/VS9.0/_socket.vcproj PC/VS9.0/_ssl.vcproj
description:
Fix compilation of Python with VS 2008
Contrary to VS 2010 the compiler doesn't like semicolon seperated
dependency names
Brett Cannon [Thu, 13 Jun 2013 03:29:18 +0000 (23:29 -0400)]
Issue #15767: Touch up ModuleNotFoundError usage by import.
Forgot to raise ModuleNotFoundError when None is found in sys.modules.
This led to introducing the C function PyErr_SetImportErrorSubclass()
to make setting ModuleNotFoundError easier.
Also updated the reference docs to mention ModuleNotFoundError
appropriately. Updated the docs for ModuleNotFoundError to mention the
None in sys.modules case.
Lastly, it was noticed that PyErr_SetImportError() was not setting an
exception when returning None in one case. That issue is now fixed.
Brett Cannon [Wed, 12 Jun 2013 20:59:46 +0000 (16:59 -0400)]
Issue #15767: Introduce ModuleNotFoundError, a subclass of
ImportError.
The exception is raised by import when a module could not be found.
Technically this is defined as no viable loader could be found for the
specified module. This includes ``from ... import`` statements so that
the module usage is consistent for all situations where import
couldn't find what was requested.
This should allow for the common idiom of::
try:
import something
except ImportError:
pass
to be updated to using ModuleNotFoundError and not accidentally mask
ImportError messages that should propagate (e.g. issues with a
loader).
This work was driven by the fact that the ``from ... import``
statement needed to be able to tell the difference between an
ImportError that simply couldn't find a module (and thus silence the
exception so that ceval can raise it) and an ImportError that
represented an actual problem.