Commit graph

5103 commits

Author SHA1 Message Date
Brett Cannon
8c18da20f9 merge 2013-06-14 18:33:21 -04:00
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
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
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
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
Serhiy Storchaka
9e62d35e65 Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs. 2013-05-22 15:33:09 +03:00
Ned Deily
ea3cfc5f34 Issue #18026: fix ctypes doc typo 2013-05-20 14:29:44 -07:00
Raymond Hettinger
697fd46d15 merge 2013-06-02 10:04:59 -07: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
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
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
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
Jason R. Coombs
8f1a8e32b1 Merge with 3.3 2013-05-27 23:26:36 -04:00
Brett Cannon
3b62ca88e4 Issue #18072: Implement get_code() for importlib.abc.InspectLoader and
ExecutionLoader.
2013-05-27 21:11:04 -04:00
Brett Cannon
9ffe85e1e8 Move importlib.abc.SourceLoader.source_to_code() to InspectLoader.
While the previous location was fine, it makes more sense to have the
method higher up in the inheritance chain, especially at a point where
get_source() is defined which is the earliest source_to_code() could
programmatically be used in the inheritance tree in importlib.abc.
2013-05-26 16:45:10 -04:00
Łukasz Langa
eadd8cf507 Fix #16832 - expose cache validity checking support in ABCMeta 2013-05-25 18:41:50 +02:00
Brett Cannon
21cc628e4c merge 2013-05-25 11:29:03 -04:00
Brett Cannon
b39567a00e merge 2013-05-25 11:26:36 -04:00
Brett Cannon
6489d0b380 merge fix for issue #17953 2013-05-24 17:31:37 -04:00
Senthil Kumaran
8307075ce8 Fix #17272 - Make Request.full_url and Request.get_full_url return same result under all circumstances.
Document the change of Request.full_url to a property.
2013-05-24 09:14:12 -07:00
Senthil Kumaran
cbc77bbbc0 merge from 3.3
Fix #18007 : Document CookieJar.add_cookie_header request parameter changes in 3.3 and 3.4.
2013-05-23 05:28:34 -07:00
Nick Coghlan
c633f97808 Merge issue 17844 from 3.3 2013-05-23 20:25:09 +10:00
Serhiy Storchaka
549681c79b Issue #17844: Add links to encoders and decoders for bytes-to-bytes codecs. 2013-05-22 15:35:35 +03:00
Giampaolo Rodola'
80e1c43ddf Fix issue #17996: expose socket.AF_LINK constant on BSD and OSX. 2013-05-21 21:02:04 +02:00
Ned Deily
de88c0d2f2 Issue #18026: merge 2013-05-20 14:32:06 -07:00