Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
32d37421
Commit
32d37421
authored
Sep 07, 2016
by
Senthil Kumaran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[backport to 3.5] - issue26896 - Disambiguate uses of "importer" with "finder".
parent
e848cd76
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
21 additions
and
21 deletions
+21
-21
Doc/c-api/import.rst
Doc/c-api/import.rst
+4
-4
Lib/pkgutil.py
Lib/pkgutil.py
+9
-9
Lib/runpy.py
Lib/runpy.py
+2
-2
Lib/test/test_importlib/import_/test_meta_path.py
Lib/test/test_importlib/import_/test_meta_path.py
+0
-1
Lib/test/test_importlib/util.py
Lib/test/test_importlib/util.py
+0
-1
Lib/test/test_pkgutil.py
Lib/test/test_pkgutil.py
+1
-1
Misc/ACKS
Misc/ACKS
+1
-0
Python/import.c
Python/import.c
+4
-3
No files found.
Doc/c-api/import.rst
View file @
32d37421
...
...
@@ -207,13 +207,13 @@ Importing Modules
.. c:function:: PyObject* PyImport_GetImporter(PyObject *path)
Return a
n import
er object for a :data:`sys.path`/:attr:`pkg.__path__` item
Return a
find
er object for a :data:`sys.path`/:attr:`pkg.__path__` item
*path*, possibly by fetching it from the :data:`sys.path_importer_cache`
dict. If it wasn't yet cached, traverse :data:`sys.path_hooks` until a hook
is found that can handle the path item. Return ``None`` if no hook could;
this tells our caller
it should fall back to the built-in import mechanism.
Cache the result in :data:`sys.path_importer_cache`. Return a new reference
to the import
er object.
this tells our caller
that the :term:`path based finder` could not find a
finder for this path item. Cache the result in :data:`sys.path_importer_cache`.
Return a new reference to the find
er object.
.. c:function:: void _PyImport_Init()
...
...
Lib/pkgutil.py
View file @
32d37421
...
...
@@ -45,7 +45,7 @@ def read_code(stream):
def
walk_packages
(
path
=
None
,
prefix
=
''
,
onerror
=
None
):
"""Yields (module_
loa
der, name, ispkg) for all modules recursively
"""Yields (module_
fin
der, name, ispkg) for all modules recursively
on path, or, if path is None, all accessible modules.
'path' should be either None or a list of paths to look for
...
...
@@ -102,7 +102,7 @@ def walk_packages(path=None, prefix='', onerror=None):
def
iter_modules
(
path
=
None
,
prefix
=
''
):
"""Yields (module_
loa
der, name, ispkg) for all submodules on path,
"""Yields (module_
fin
der, name, ispkg) for all submodules on path,
or, if path is None, all top-level modules on sys.path.
'path' should be either None or a list of paths to look for
...
...
@@ -184,10 +184,10 @@ def _import_imp():
imp
=
importlib
.
import_module
(
'imp'
)
class
ImpImporter
:
"""PEP 302
Import
er that wraps Python's "classic" import algorithm
"""PEP 302
Find
er that wraps Python's "classic" import algorithm
ImpImporter(dirname) produces a PEP 302
import
er that searches that
directory. ImpImporter(None) produces a PEP 302
import
er that searches
ImpImporter(dirname) produces a PEP 302
find
er that searches that
directory. ImpImporter(None) produces a PEP 302
find
er that searches
the current sys.path, plus any modules that are frozen or built-in.
Note that ImpImporter does not currently support being used by placement
...
...
@@ -397,7 +397,7 @@ except ImportError:
def
get_importer
(
path_item
):
"""Retrieve a finder for the given path item
The returned
import
er is cached in sys.path_importer_cache
The returned
find
er is cached in sys.path_importer_cache
if it was newly created by a path hook.
The cache (or part of it) can be cleared manually if a
...
...
@@ -421,14 +421,14 @@ def get_importer(path_item):
def
iter_importers
(
fullname
=
""
):
"""Yield finders for the given module name
If fullname contains a '.', the
import
ers will be for the package
If fullname contains a '.', the
find
ers will be for the package
containing fullname, otherwise they will be all registered top level
import
ers (i.e. those on both sys.meta_path and sys.path_hooks).
find
ers (i.e. those on both sys.meta_path and sys.path_hooks).
If the named module is in a package, that package is imported as a side
effect of invoking this function.
If no module name is specified, all top level
import
ers are produced.
If no module name is specified, all top level
find
ers are produced.
"""
if
fullname
.
startswith
(
'.'
):
msg
=
"Relative module name {!r} not supported"
.
format
(
fullname
)
...
...
Lib/runpy.py
View file @
32d37421
...
...
@@ -98,7 +98,7 @@ def _run_module_code(code, init_globals=None,
# may be cleared when the temporary module goes away
return
mod_globals
.
copy
()
# Helper to get the
loader, code and filenam
e for a module
# Helper to get the
full name, spec and cod
e for a module
def
_get_module_details
(
mod_name
,
error
=
ImportError
):
if
mod_name
.
startswith
(
"."
):
raise
error
(
"Relative module names not supported"
)
...
...
@@ -262,7 +262,7 @@ def run_path(path_name, init_globals=None, run_name=None):
return
_run_module_code
(
code
,
init_globals
,
run_name
,
pkg_name
=
pkg_name
,
script_name
=
fname
)
else
:
#
Import
er is defined for path, so add it to
#
Find
er is defined for path, so add it to
# the start of sys.path
sys
.
path
.
insert
(
0
,
path_name
)
try
:
...
...
Lib/test/test_importlib/import_/test_meta_path.py
View file @
32d37421
...
...
@@ -76,7 +76,6 @@ class CallSignature:
self
.
__import__
(
mod_name
)
assert
len
(
log
)
==
1
args
=
log
[
0
][
0
]
kwargs
=
log
[
0
][
1
]
# Assuming all arguments are positional.
self
.
assertEqual
(
args
[
0
],
mod_name
)
self
.
assertIsNone
(
args
[
1
])
...
...
Lib/test/test_importlib/util.py
View file @
32d37421
...
...
@@ -266,7 +266,6 @@ class mock_spec(_ImporterMock):
module
=
self
.
modules
[
fullname
]
except
KeyError
:
return
None
is_package
=
hasattr
(
module
,
'__path__'
)
spec
=
util
.
spec_from_file_location
(
fullname
,
module
.
__file__
,
loader
=
self
,
submodule_search_locations
=
getattr
(
module
,
'__path__'
,
None
))
...
...
Lib/test/test_pkgutil.py
View file @
32d37421
...
...
@@ -205,7 +205,7 @@ class PkgutilPEP302Tests(unittest.TestCase):
del
sys
.
meta_path
[
0
]
def
test_getdata_pep302
(
self
):
# Use a dummy
import
er/loader
# Use a dummy
find
er/loader
self
.
assertEqual
(
pkgutil
.
get_data
(
'foo'
,
'dummy'
),
"Hello, world!"
)
del
sys
.
modules
[
'foo'
]
...
...
Misc/ACKS
View file @
32d37421
...
...
@@ -990,6 +990,7 @@ Damien Miller
Jason V. Miller
Jay T. Miller
Katie Miller
Oren Milman
Roman Milner
Julien Miotte
Andrii V. Mishkovskyi
...
...
Python/import.c
View file @
32d37421
...
...
@@ -960,12 +960,13 @@ is_builtin(PyObject *name)
}
/* Return a
n import
er object for a sys.path/pkg.__path__ item 'p',
/* Return a
find
er object for a sys.path/pkg.__path__ item 'p',
possibly by fetching it from the path_importer_cache dict. If it
wasn't yet cached, traverse path_hooks until a hook is found
that can handle the path item. Return None if no hook could;
this tells our caller it should fall back to the builtin
import mechanism. Cache the result in path_importer_cache.
this tells our caller that the path based finder could not find
a finder for this path item. Cache the result in
path_importer_cache.
Returns a borrowed reference. */
static
PyObject
*
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment