Commit graph

15181 commits

Author SHA1 Message Date
Brett Cannon
33915eba7c Issue #17222: Raise FileExistsError when py_compile.compile would
overwrite a symlink or non-regular file with a regular file.
2013-06-14 18:33:00 -04:00
Ned Deily
7bff3cbe3d Issue #18149: Add filecmp.clear_cache() to manually clear the filecmp cache.
Patch by Mark Levitt
2013-06-14 15:19:11 -07:00
Brett Cannon
3fe35e6503 Issue #18193: Add importlib.reload(), documenting (but not
implementing in code) the deprecation of imp.reload().

Thanks to Berker Peksag for the patch.
2013-06-14 15:04:26 -04:00
Ethan Furman
0fff6ad1a1 Closes issue 17947. Adds PEP-0435 (Enum, IntEnum) to the stdlib. 2013-06-14 00:30:27 -07:00
Brett Cannon
8f5ac5106e 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.
2013-06-12 23:29:18 -04:00
Brett Cannon
b1611e2772 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.
2013-06-12 16:59:46 -04:00
Ned Deily
982c6efeb5 Issue #18187: merge from 3.3 2013-06-11 14:40:23 -07:00
Ned Deily
3886120428 Issue #18187: Fix broken link in venv documentation. Patch by Berker Peksag. 2013-06-11 14:38:39 -07:00
Christian Heimes
46bebee25f Issue #17134: Add ssl.enum_cert_store() as interface to Windows' cert store. 2013-06-09 19:03:31 +02:00
Christian Heimes
3e738f97f8 removed accidental new line 2013-06-09 18:07:16 +02:00
Christian Heimes
6d7ad13a45 Issue #18143: Implement ssl.get_default_verify_paths() in order to debug
the default locations for cafile and capath.
2013-06-09 18:02:55 +02:00
Ezio Melotti
7dc4c03344 #18126: merge with 3.3. 2013-06-09 01:05:16 +03:00
Ezio Melotti
c1f5839412 #18126: update NumPy links in the documentation. Patch by Yury V. Zaytsev. 2013-06-09 01:04:21 +03:00
Łukasz Langa
fdcf2b7d4e moved the single-dispatch generic function definitions to the glossary 2013-06-07 22:54:03 +02:00
Vinay Sajip
30298b468b Closes #11959: SMTPServer and SMTPChannel now take an optional map, use of which avoids affecting global state. 2013-06-07 15:21:41 +01:00
Łukasz Langa
6f69251980 Add reference implementation for PEP 443
PEP accepted: http://mail.python.org/pipermail/python-dev/2013-June/126734.html
2013-06-05 12:20:24 +02:00
Raymond Hettinger
d71001749d Clarify which dictionaries are updateable
by using the wording from the Py2.7 docs.
2013-06-02 10:03:05 -07:00
Serhiy Storchaka
dce05500a1 Issue #18085: Fix PyObject_CallMethodObjArgs()'s entry in refcounts.dat. 2013-05-28 22:46:15 +03:00
Serhiy Storchaka
ea2b490f3d Issue #18011: base64.b32decode() now raises a binascii.Error if there are
non-alphabet characters present in the input string to conform a docstring.
Updated the module documentation.
2013-05-28 15:27:29 +03:00
Serhiy Storchaka
fef952a607 Issue #18079: Fix a typo in the tutorial. 2013-05-28 12:49:34 +03:00
Jason R. Coombs
3a09286790 Issue #13772: Restored directory detection of targets in os.symlink on Windows, which was temporarily removed in Python 3.2.3 due to an incomplete implementation. The implementation now works even if the symlink is created in a location other than the current directory. 2013-05-27 23:21:28 -04:00
Ned Deily
ecf0851809 Fix typo in embedding doc and update examples to 3.3. 2013-05-26 18:53:39 -07:00
Brett Cannon
4b4e38e7d4 Mention __cached__ in the import ref. 2013-05-25 11:32:50 -04:00
Brett Cannon
533f1ed334 Add a missing parenthesis. 2013-05-25 11:28:20 -04:00
Brett Cannon
2cefb3cf96 Various tweaks to importlib docs. 2013-05-25 11:26:11 -04:00
Brett Cannon
c3511c1dd8 Issue #17953: document that sys.modules shouldn't be replaced (thanks
to interp->modules) and that deleting essential items from the dict
can cause Python to blow up.

Thanks to Terry Reedy for coming up with initial wording and Yogesh
Chaudhari for coming up with a patch using that wording in parallel to
my own patch.
2013-05-24 08:05:07 -04:00
Senthil Kumaran
05ec6aca3a Fix #18007 : Document CookieJar.add_cookie_header request parameter changes in 3.3 2013-05-23 05:27:38 -07:00
Nick Coghlan
650e322fc6 Issue 17844: Clarify meaning of different codec tables 2013-05-23 20:24:02 +10:00
Raymond Hettinger
c1939b8f75 Issue #18031: %-formatting isn't dead yet and might pull through. 2013-05-23 00:14:47 -07:00
Serhiy Storchaka
9e62d35e65 Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs. 2013-05-22 15:33:09 +03:00
R David Murray
95ae99205e #17973: fix technical inaccuracy in faq entry (it now passes doctest). 2013-05-21 11:44:41 -04:00
Ned Deily
ea3cfc5f34 Issue #18026: fix ctypes doc typo 2013-05-20 14:29:44 -07:00
R David Murray
bcf06d364d #17973: Add FAQ entry for ([],)[0] += [1] both extending and raising.
This has come up often enough now on the tracker that it deserves a FAQ entry.
2013-05-20 10:32:46 -04:00
Ezio Melotti
86aecc360f #14097: improve the "introduction" page of the tutorial. 2013-05-20 08:12:32 +03:00
Raymond Hettinger
697fd46d15 merge 2013-06-02 10:04:59 -07:00
Brett Cannon
3e0651b5fa Issue #18065: For frozen packages set __path__ to [].
Previously __path__ was set to [__name__], but that could lead to bad
results if someone managed to circumvent the frozen importer and
somehow ended up with a finder that thought __name__ was a legit
directory/location.
2013-05-31 23:18:39 -04:00
Brett Cannon
0dbb4c7f13 Issues #18088, 18089: Introduce
importlib.abc.Loader.init_module_attrs() and implement
importlib.abc.InspectLoader.load_module().

The importlib.abc.Loader.init_module_attrs() method sets the various
attributes on the module being loaded. It is done unconditionally to
support reloading. Typically people used
importlib.util.module_for_loader, but since that's a decorator there
was no way to override it's actions, so init_module_attrs() came into
existence to allow for overriding. This is also why module_for_loader
is now pending deprecation (having its other use replaced by
importlib.util.module_to_load).

All of this allowed for importlib.abc.InspectLoader.load_module() to
be implemented. At this point you can now implement a loader with
nothing more than get_code() (which only requires get_source();
package support requires is_package()). Thanks to init_module_attrs()
the implementation of load_module() is basically a context manager
containing 2 methods calls, a call to exec(), and a return statement.
2013-05-31 18:56:47 -04:00
Brett Cannon
b60a43eabf Add a reset_name argument to importlib.util.module_to_load in order to
control whether to reset the module's __name__ attribute in case a
reload is being done.
2013-05-31 18:11:17 -04:00
Brett Cannon
028d51236a Update What's New for importlib.util.module_to_load name change 2013-05-31 18:02:11 -04:00
Brett Cannon
177381116e Add a reference to module_to_load 2013-05-31 18:00:56 -04:00
Brett Cannon
357c9fb055 Rename importlib.util.ModuleManager to module_to_load so that the name
explains better what the context manager is providing.
2013-05-30 17:31:47 -04:00
Serhiy Storchaka
1cfebc73e0 Issue #9369: The types of char* arguments of PyObject_CallFunction() and
PyObject_CallMethod() now changed to `const char*`.
Based on patches by Jörg Müller and Lars Buitinck.
2013-05-29 18:50:54 +03:00
Andrew Kuchling
1e170bae71 #1554133: Document PyOS_InputHook, PyOS_ReadlineFunctionPointer 2013-05-28 21:48:28 -04:00
Brett Cannon
56dfc2127f Undo a recommendation as load_module() methods might be called directly 2013-05-28 18:40:31 -04:00
Brett Cannon
3dc48d6f69 Issue #18070: importlib.util.module_for_loader() now sets __loader__
and __package__ unconditionally in order to do the right thing for
reloading.
2013-05-28 18:35:54 -04:00
Brett Cannon
a22faca714 Clarify some documentation 2013-05-28 17:50:14 -04:00
Brett Cannon
a3687f0d68 Introduce importlib.util.ModuleManager which is a context manager to
handle providing (and cleaning up if needed) the module to be loaded.

A future commit will use the context manager in
Lib/importlib/_bootstrap.py and thus why the code is placed there
instead of in Lib/importlib/util.py.
2013-05-28 17:29:34 -04:00
Serhiy Storchaka
4dbae88131 Issue #18085: Fix PyObject_CallMethodObjArgs()'s entry in refcounts.dat. 2013-05-28 22:47:36 +03:00
Serhiy Storchaka
77a3ad743f Issue #18011: base64.b32decode() now raises a binascii.Error if there are
non-alphabet characters present in the input string to conform a docstring.
Updated the module documentation.
2013-05-28 15:30:38 +03:00
Serhiy Storchaka
3801f632dc Issue #18079: Fix a typo in the tutorial. 2013-05-28 12:50:54 +03:00