importlib.resources.abc – Абстрактные базовые классы для ресурсов
Исходный код: Lib/importlib/resources/abc.py
Введено в версии 3.11.
-
class importlib.resources.abc.ResourceReader -
Заменено классом TraversableResources
Абстрактный базовый класс для работы с ресурсами.
С точки зрения этого АБК, ресурс — это бинарный артефакт, входящий в состав пакета. Обычно это такой файл данных, который находится рядом с файлом
__init__.pyпакета. Цель этого класса — абстрагировать доступ к таким файлам данных, чтобы неважно, хранятся ли пакет и его файлы данных в архиве, например, zip-архиве, или на файловой системе.Для любого метода этого класса ожидается, что аргумент ресурс будет объектом-подобьем пути, который концептуально представляет просто имя файла. Это означает, что пути к подкаталогам не должны включаться в аргумент ресурс. Это потому, что местоположение пакета, для которого предназначен ридер, выступает в качестве «каталога». Следовательно, метафорой каталогов и имён файлов являются, соответственно, пакеты и ресурсы. Это также объясняет, почему экземпляры этого класса ожидают, что они будут напрямую соответствовать определённому пакету (вместо того, чтобы потенциально представлять несколько пакетов или модуль).
Загрузчики, которые хотят поддерживать чтение ресурсов, должны предоставить метод, называемый
get_resource_reader(fullname), который возвращает объект, реализующий интерфейс этого АБК. Если модуль, указанный в fullname, не является пакетом, этот метод должен возвращатьNone. Объект, совместимый с этим АБК, должен возвращаться только в том случае, если указанный модуль является пакетом.Введено в версии 3.7.
-
abstractmethod open_resource(resource) -
Возвращает открытый объект-подобье файла для двоичного чтения ресурса.
Если ресурс не найден, возникает исключение
FileNotFoundError.
-
abstractmethod resource_path(resource) -
Возвращает путь к ресурсу в файловой системе.
Если ресурс конкретно не существует в файловой системе, возникает исключение
FileNotFoundError.
-
abstractmethod is_resource(name) -
Возвращает
True, если указанное имя name считается ресурсом. Если name не существует, возникает исключениеFileNotFoundError.
-
abstractmethod contents() -
Возвращает итерируемый объект строк, содержащий содержимое пакета. Обратите внимание, что не требуется, чтобы все имена, возвращаемые итератором, были фактическими ресурсами, например, допустимо возвращать имена, для которых
is_resource()будет ложным.Разрешение возвращения имён, не являющихся ресурсами, предназначено для ситуаций, когда способ хранения пакета и его ресурсов известен заранее, и имена, не являющиеся ресурсами, будут полезны. Например, разрешается возвращать имена подкаталогов, чтобы при известном хранении пакета и ресурсов на файловой системе эти имена подкаталогов можно было использовать непосредственно.
Абстрактный метод возвращает итерируемый объект без элементов.
-
class importlib.resources.abc.Traversable -
Объект с подмножеством методов
pathlib.Path, подходящих для обхода каталогов и открытия файлов.Для представления объекта в файловой системе используйте
importlib.resources.as_file().Введено в версии 3.9.
-
name -
Абстрактное. Базовое имя этого объекта без каких-либо ссылок на родительские элементы.
-
abstractmethod iterdir() -
Возвращает итератор объектов Traversable внутри self.
-
abstractmethod is_dir() -
Возвращает True, если self — это каталог.
-
abstractmethod is_file() -
Возвращает True, если self — это файл.
-
abstractmethod joinpath(child) -
Возвращает дочерний объект Traversable внутри self.
-
abstractmethod __truediv__(child) -
Возвращает дочерний объект Traversable внутри self.
-
abstractmethod open(mode='r', *args, **kwargs) -
mode может быть ‘r’ или ‘rb’ для открытия как текстового или двоичного файла. Возвращает обработчик для чтения (аналогично
pathlib.Path.open).При открытии в текстовом формате принимает параметры кодировки, такие же, как принимаемые
io.TextIOWrapper.
-
read_bytes() -
Читает содержимое self в формате байтов.
-
read_text(encoding=None) -
Читает содержимое self в текстовом формате.
-
-
class importlib.resources.abc.TraversableResources -
Абстрактный базовый класс для ридеров ресурсов, способных обслуживать интерфейс
importlib.resources.files(). Класс-наследникResourceReaderи предоставляет конкретные реализации абстрактных методовResourceReader. Следовательно, любой загрузчик, предоставляющийTraversableResources, также предоставляетResourceReader.Загрузчики, желающие поддерживать чтение ресурсов, должны реализовать этот интерфейс.
Введено в версии 3.9.
-
abstractmethod files() -
Возвращает объект
importlib.resources.abc.Traversableдля загруженного пакета.
-
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/importlib.resources.abc.html -