summaryrefslogtreecommitdiffstats
path: root/Lib/importlib/resources.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>2018-05-17 15:41:53 (GMT)
committerGitHub <noreply@github.com>2018-05-17 15:41:53 (GMT)
commit0ed66df5242138fc599b4735749e55f953d9a1e4 (patch)
tree36b82acefc5a9da60d909ed2fd9f6f1d2a34609f /Lib/importlib/resources.py
parentdff46758f267ad6c13096c69c4e1dee17f9969aa (diff)
downloadcpython-0ed66df5242138fc599b4735749e55f953d9a1e4.zip
cpython-0ed66df5242138fc599b4735749e55f953d9a1e4.tar.gz
cpython-0ed66df5242138fc599b4735749e55f953d9a1e4.tar.bz2
bpo-33537: Add an __all__ to importlib.resources (#6920)
Diffstat (limited to 'Lib/importlib/resources.py')
-rw-r--r--Lib/importlib/resources.py28
1 files changed, 20 insertions, 8 deletions
diff --git a/Lib/importlib/resources.py b/Lib/importlib/resources.py
index 4d70186..cbefdd5 100644
--- a/Lib/importlib/resources.py
+++ b/Lib/importlib/resources.py
@@ -2,7 +2,6 @@ import os
import tempfile
from . import abc as resources_abc
-from builtins import open as builtins_open
from contextlib import contextmanager, suppress
from importlib import import_module
from importlib.abc import ResourceLoader
@@ -15,6 +14,19 @@ from typing.io import BinaryIO, TextIO
from zipimport import ZipImportError
+__all__ = [
+ 'Package',
+ 'Resource',
+ 'contents',
+ 'is_resource',
+ 'open_binary',
+ 'open_text',
+ 'path',
+ 'read_binary',
+ 'read_text',
+ ]
+
+
Package = Union[str, ModuleType]
Resource = Union[str, os.PathLike]
@@ -82,7 +94,7 @@ def open_binary(package: Package, resource: Resource) -> BinaryIO:
package_path = os.path.dirname(absolute_package_path)
full_path = os.path.join(package_path, resource)
try:
- return builtins_open(full_path, mode='rb')
+ return open(full_path, mode='rb')
except OSError:
# Just assume the loader is a resource loader; all the relevant
# importlib.machinery loaders are and an AttributeError for
@@ -116,8 +128,7 @@ def open_text(package: Package,
package_path = os.path.dirname(absolute_package_path)
full_path = os.path.join(package_path, resource)
try:
- return builtins_open(
- full_path, mode='r', encoding=encoding, errors=errors)
+ return open(full_path, mode='r', encoding=encoding, errors=errors)
except OSError:
# Just assume the loader is a resource loader; all the relevant
# importlib.machinery loaders are and an AttributeError for
@@ -248,10 +259,10 @@ def contents(package: Package) -> Iterable[str]:
return os.listdir(package_directory)
-# Private implementation of ResourceReader and get_resource_reader() for
-# zipimport. Don't use these directly! We're implementing these in Python
-# because 1) it's easier, 2) zipimport will likely get rewritten in Python
-# itself at some point, so doing this all in C would just be a waste of
+# Private implementation of ResourceReader and get_resource_reader() called
+# from zipimport.c. Don't use these directly! We're implementing these in
+# Python because 1) it's easier, 2) zipimport may get rewritten in Python
+# itself at some point, so doing this all in C would difficult and a waste of
# effort.
class _ZipImportResourceReader(resources_abc.ResourceReader):
@@ -322,6 +333,7 @@ class _ZipImportResourceReader(resources_abc.ResourceReader):
yield parent_name
+# Called from zipimport.c
def _zipimport_get_resource_reader(zipimporter, fullname):
try:
if not zipimporter.is_package(fullname):