Load the specified module if it is the same as :attr:`name`.
-.. class:: _SourcelessFileLoader(fullname, path)
+.. class:: SourcelessFileLoader(fullname, path)
A concrete implementation of :class:`importlib.abc.FileLoader` which can
import bytecode files (i.e. no source code files exist).
- It is **strongly** suggested you do not rely on this loader (hence the
- leading underscore of the class). Direct use of bytecode files (and thus not
- source code files) inhibits your modules from being usable by all Python
- implementations. It also runs the risk of your bytecode files not being
- usable by new versions of Python which change the bytecode format. This
- class is only documented as it is directly used by import and thus can
- potentially have instances show up as a module's ``__loader__`` attribute.
+ Please note that direct use of bytecode files (and thus not source code
+ files) inhibits your modules from being usable by all Python
+ implementations or new versions of Python which change the bytecode
+ format.
.. versionadded:: 3.3
class _LoadCompiledCompatibility(_HackedGetData,
- _bootstrap._SourcelessFileLoader):
+ _bootstrap.SourcelessFileLoader):
"""Compatibility support for implementing load_compiled()."""
pass
-class _SourcelessFileLoader(FileLoader, _LoaderBasics):
+class SourcelessFileLoader(FileLoader, _LoaderBasics):
"""Loader which handles sourceless file imports."""
supported_loaders = [(ExtensionFileLoader, _suffix_list(3), False),
(SourceFileLoader, _suffix_list(1), True),
- (_SourcelessFileLoader, _suffix_list(2), True)]
+ (SourcelessFileLoader, _suffix_list(2), True)]
setattr(self_module, '_DEFAULT_PATH_HOOK',
FileFinder.path_hook(*supported_loaders))
ExecutionLoader ABCs."""
_register(FileLoader, machinery.SourceFileLoader,
- machinery._SourcelessFileLoader)
+ machinery.SourcelessFileLoader)
class SourceLoader(_bootstrap.SourceLoader, ResourceLoader, ExecutionLoader):
from ._bootstrap import PathFinder
from ._bootstrap import FileFinder
from ._bootstrap import SourceFileLoader
-from ._bootstrap import _SourcelessFileLoader
+from ._bootstrap import SourcelessFileLoader
from ._bootstrap import ExtensionFileLoader
(_bootstrap.SourceFileLoader,
_bootstrap._suffix_list(imp.PY_SOURCE),
True),
- (_bootstrap._SourcelessFileLoader,
+ (_bootstrap.SourcelessFileLoader,
_bootstrap._suffix_list(imp.PY_COMPILED),
True))
return finder.find_module(self.name)
class SourcelessLoaderBadBytecodeTest(BadBytecodeTest):
- loader = _bootstrap._SourcelessFileLoader
+ loader = _bootstrap.SourcelessFileLoader
def test_empty_file(self):
def test(name, mapping, bytecode_path):
def import_(self, root, module):
loader_details = [(_bootstrap.SourceFileLoader,
_bootstrap._suffix_list(imp.PY_SOURCE), True),
- (_bootstrap._SourcelessFileLoader,
+ (_bootstrap.SourcelessFileLoader,
_bootstrap._suffix_list(imp.PY_COMPILED), True)]
finder = _bootstrap.FileFinder(root, *loader_details)
return finder.find_module(module)
class FileLoader(InheritanceTests, unittest.TestCase):
superclasses = [abc.ResourceLoader, abc.ExecutionLoader]
- subclasses = [machinery.SourceFileLoader, machinery._SourcelessFileLoader]
+ subclasses = [machinery.SourceFileLoader, machinery.SourcelessFileLoader]
class SourceLoader(InheritanceTests, unittest.TestCase):
which send EOF without trailing \r\n.
- Issue #14605: Add importlib.abc.FileLoader, importlib.machinery.(FileFinder,
- SourceFileLoader, _SourcelessFileLoader, ExtensionFileLoader).
+ SourceFileLoader, SourcelessFileLoader, ExtensionFileLoader).
- Issue #13959: imp.cache_from_source()/source_from_cache() now follow
os.path.join()/split() semantics for path manipulation instead of its prior,