diff options
author | Nick Coghlan <ncoghlan@gmail.com> | 2012-07-18 13:14:57 (GMT) |
---|---|---|
committer | Nick Coghlan <ncoghlan@gmail.com> | 2012-07-18 13:14:57 (GMT) |
commit | 76e077001d9c593faaec1aa5187dd7870cb4481c (patch) | |
tree | 8ac59cf5a5321a0cef8cdf56a4681cf46969cb73 /Doc/library | |
parent | 90db661b4335eaf7a3cb5e9a4524ae9707eeaf76 (diff) | |
download | cpython-76e077001d9c593faaec1aa5187dd7870cb4481c.zip cpython-76e077001d9c593faaec1aa5187dd7870cb4481c.tar.gz cpython-76e077001d9c593faaec1aa5187dd7870cb4481c.tar.bz2 |
Close #15387: inspect.getmodulename() now uses a new importlib.machinery.all_suffixes() API rather than the deprecated inspect.getmoduleinfo()
Diffstat (limited to 'Doc/library')
-rw-r--r-- | Doc/library/importlib.rst | 13 | ||||
-rw-r--r-- | Doc/library/inspect.rst | 15 |
2 files changed, 24 insertions, 4 deletions
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst index cea2da0..daf9e56 100644 --- a/Doc/library/importlib.rst +++ b/Doc/library/importlib.rst @@ -533,12 +533,23 @@ find and load modules. .. attribute:: EXTENSION_SUFFIXES - A list of strings representing the the recognized file suffixes for + A list of strings representing the recognized file suffixes for extension modules. .. versionadded:: 3.3 +.. func:: all_suffixes() + + Returns a combined list of strings representing all file suffixes for + Python modules recognized by the standard import machinery. This is a + helper for code which simply needs to know if a filesystem path + potentially represents a Python module (for example, + :func:`inspect.getmodulename`) + + .. versionadded:: 3.3 + + .. class:: BuiltinImporter An :term:`importer` for built-in modules. All known built-in modules are diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index 6568e94..ac0d6e6 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -198,9 +198,18 @@ attributes: .. function:: getmodulename(path) Return the name of the module named by the file *path*, without including the - names of enclosing packages. This uses the same algorithm as the interpreter - uses when searching for modules. If the name cannot be matched according to the - interpreter's rules, ``None`` is returned. + names of enclosing packages. The file extension is checked against all of + the entries in :func:`importlib.machinery.all_suffixes`. If it matches, + the final path component is returned with the extension removed. + Otherwise, ``None`` is returned. + + Note that this function *only* returns a meaningful name for actual + Python modules - paths that potentially refer to Python packages will + still return ``None``. + + .. versionchanged:: 3.3 + This function is now based directly on :mod:`importlib` rather than the + deprecated :func:`getmoduleinfo`. .. function:: ismodule(object) |