summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2009-02-16 04:18:01 (GMT)
committerBrett Cannon <bcannon@gmail.com>2009-02-16 04:18:01 (GMT)
commitdebb98d91f6358e85c7790386ab9b6f52299da98 (patch)
treeb9d06c2a93a996867a4ca8282ad09bdb165dfc4c
parent0d4785bc3b64c9429758436c60357e04bdcd1379 (diff)
downloadcpython-debb98d91f6358e85c7790386ab9b6f52299da98.zip
cpython-debb98d91f6358e85c7790386ab9b6f52299da98.tar.gz
cpython-debb98d91f6358e85c7790386ab9b6f52299da98.tar.bz2
Document importlib.machinery.PathFinder.
-rw-r--r--Doc/library/importlib.rst31
-rw-r--r--Lib/importlib/NOTES6
2 files changed, 33 insertions, 4 deletions
diff --git a/Doc/library/importlib.rst b/Doc/library/importlib.rst
index d850c7d..1a33fd4 100644
--- a/Doc/library/importlib.rst
+++ b/Doc/library/importlib.rst
@@ -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
implementaiton of :keyword:`import` which is portable to any Python
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
package, making it easier for users to create their own custom objects (known
-generically as importers) to participate in the import process. Details on
-providing custom importers can be found in :pep:`302`.
+generically as an :term:`importer`) to participate in the import process.
+Details on providing custom importers can be found in :pep:`302`.
.. seealso::
@@ -126,3 +126,28 @@ find and load modules.
Class method that allows this class to be a :term:`loader` for frozen
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.
diff --git a/Lib/importlib/NOTES b/Lib/importlib/NOTES
index 22e4d05..bdbedec 100644
--- a/Lib/importlib/NOTES
+++ b/Lib/importlib/NOTES
@@ -52,7 +52,6 @@ to do
+ machinery
- (?) Chained path hook/finder
- - (?) FileFinder
- Extensions importers
* ExtensionFinder
@@ -65,6 +64,11 @@ to do
- 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.
* OPTIMIZE!