mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Document importlib.machinery.PathFinder.
This commit is contained in:
parent
0d4785bc3b
commit
debb98d91f
2 changed files with 33 additions and 4 deletions
|
@ -18,12 +18,12 @@ implementation of the :keyword:`import` statement (and thus, by extension, the
|
||||||
:func:`__import__` function) in Python source code. This provides an
|
:func:`__import__` function) in Python source code. This provides an
|
||||||
implementaiton of :keyword:`import` which is portable to any Python
|
implementaiton of :keyword:`import` which is portable to any Python
|
||||||
interpreter. This also provides a reference implementation which is easier to
|
interpreter. This also provides a reference implementation which is easier to
|
||||||
read than one in a programming language other than Python.
|
comprehend than one in a programming language other than Python.
|
||||||
|
|
||||||
Two, the components to implement :keyword:`import` can be exposed in this
|
Two, the components to implement :keyword:`import` can be exposed in this
|
||||||
package, making it easier for users to create their own custom objects (known
|
package, making it easier for users to create their own custom objects (known
|
||||||
generically as importers) to participate in the import process. Details on
|
generically as an :term:`importer`) to participate in the import process.
|
||||||
providing custom importers can be found in :pep:`302`.
|
Details on providing custom importers can be found in :pep:`302`.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
|
@ -126,3 +126,28 @@ find and load modules.
|
||||||
|
|
||||||
Class method that allows this class to be a :term:`loader` for frozen
|
Class method that allows this class to be a :term:`loader` for frozen
|
||||||
modules.
|
modules.
|
||||||
|
|
||||||
|
|
||||||
|
.. class:: PathFinder
|
||||||
|
|
||||||
|
:term:`Finder` for :data:`sys.path`.
|
||||||
|
|
||||||
|
This class does not perfectly mirror the semantics of :keyword:`import` in
|
||||||
|
terms of :data:`sys.path`. No implicit path hooks are assumed for
|
||||||
|
simplification of the class and its semantics.
|
||||||
|
|
||||||
|
Only class method are defined by this class to alleviate the need for
|
||||||
|
instantiation.
|
||||||
|
|
||||||
|
.. classmethod:: find_module(fullname, path=None)
|
||||||
|
|
||||||
|
Class method that attempts to find a :term:`loader` for the module
|
||||||
|
specified by *fullname* either on :data:`sys.path` or, if defined, on
|
||||||
|
*path*. For each path entry that is searched,
|
||||||
|
:data:`sys.path_importer_cache` is checked. If an non-false object is
|
||||||
|
found then it is used as the :term:`finder` to query for the module
|
||||||
|
being searched for. For no entry is found in
|
||||||
|
:data:`sys.path_importer_cache`, then :data:`sys.path_hooks` is
|
||||||
|
searched for a finder for the path entry and, if found, is stored in
|
||||||
|
:data:`sys.path_importer_cache` along with being queried about the
|
||||||
|
module.
|
||||||
|
|
|
@ -52,7 +52,6 @@ to do
|
||||||
+ machinery
|
+ machinery
|
||||||
|
|
||||||
- (?) Chained path hook/finder
|
- (?) Chained path hook/finder
|
||||||
- (?) FileFinder
|
|
||||||
- Extensions importers
|
- Extensions importers
|
||||||
|
|
||||||
* ExtensionFinder
|
* ExtensionFinder
|
||||||
|
@ -65,6 +64,11 @@ to do
|
||||||
|
|
||||||
- PathFinder
|
- PathFinder
|
||||||
|
|
||||||
|
* Make sure that there is documentation *somewhere* fully explaining the
|
||||||
|
semantics of import that can be referenced from the package's documentation
|
||||||
|
(even if it is in the package documentation itself, although it might be best
|
||||||
|
in the language specification).
|
||||||
|
|
||||||
* Write benchmark suite.
|
* Write benchmark suite.
|
||||||
|
|
||||||
* OPTIMIZE!
|
* OPTIMIZE!
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue