importlib.resources.abc – Абстрактные базовые классы для ресурсов
Исходный код: Lib/importlib/resources/abc.py
Добавлена в версии 3.11.
-
class importlib.resources.abc.ResourceReader -
Заменено на TraversableResources
Абстрактный базовый класс, предоставляющий возможность чтения ресурсов.
С точки зрения этого АБК, ресурс — это двоичный артефакт, поставляемый вместе с пакетом. Обычно это какой-нибудь файл данных, расположенный рядом с файлом
__init__.pyпакета. Цель этого класса — абстрагировать доступ к таким файлам данных, чтобы неважно, хранятся ли пакет и его файлы данных, например, в файле zip или на файловой системе.Для любого метода этого класса ожидается, что аргумент resource будет объектом объектом, подобным пути, который концептуально представляет просто имя файла. Это означает, что пути к подкаталогам в аргументе resource включать не следует. Это потому, что расположение пакета, для которого предназначен ридер, служит «каталогом». Поэтому метафора каталогов и имён файлов — это пакеты и ресурсы соответственно. Также именно поэтому экземпляры этого класса должны напрямую соответствовать конкретному пакету (вместо того, чтобы потенциально представлять несколько пакетов или модуль).
Загрузчики, желающие поддерживать чтение ресурсов, должны предоставить метод с именем
get_resource_reader(fullname), который возвращает объект, реализующий интерфейс этого АБК. Если модуль, заданный параметром fullname, не является пакетом, этот метод должен возвращатьNone. Объект, совместимый с этим АБК, должен возвращаться только при условии, что указанный модуль является пакетом.Устарело начиная с версии 3.12, будет удалено в версии 3.14: Используйте
importlib.resources.abc.TraversableResourcesвместо этого.-
abstractmethod open_resource(resource) -
Возвращает открытый объект, подобный файлу объекту, подобному файлу, для двоичного чтения ресурса.
Если ресурс не найден, поднимается исключение
FileNotFoundError.
-
abstractmethod resource_path(resource) -
Возвращает путь к файлу в файловой системе для ресурса.
Если ресурс конкретно не существует в файловой системе, поднимите исключение
FileNotFoundError.
-
abstractmethod is_resource(name) -
Возвращает
True, если заданное имя рассматривается как ресурс. Если имя не существует, поднимается исключениеFileNotFoundError.
-
abstractmethod contents() -
Возвращает итерируемый объект строк по содержимому пакета. Обратите внимание, что не требуется, чтобы все имена, возвращаемые итератором, были фактическими ресурсами; допустимо возвращать имена, для которых
is_resource()будет ложью.Разрешение возвращать имена, не являющиеся ресурсами, служит для ситуаций, когда известно, как хранятся пакет и его ресурсы заранее, и имена, не являющиеся ресурсами, будут полезны. Например, разрешается возвращать имена подкаталогов, чтобы в случаях, когда известно, что пакет и ресурсы хранятся на файловой системе, эти имена подкаталогов можно было использовать напрямую.
Абстрактный метод возвращает итерируемый объект без элементов.
-
-
class importlib.resources.abc.Traversable -
Объект с подмножеством методов
pathlib.Path, подходящих для обхода каталогов и открытия файлов.Для представления объекта в файловой системе используйте
importlib.resources.as_file().-
name -
Абстрактное. Основное имя этого объекта без каких-либо ссылок на родительские элементы.
-
abstractmethod iterdir() -
Возвращает объекты Traversable в self.
-
abstractmethod is_dir() -
Возвращает
Trueесли self — это каталог.
-
abstractmethod is_file() -
Возвращает
Trueесли self — это файл.
-
abstractmethod joinpath(*pathsegments) -
Проходит по каталогам в соответствии с pathsegments и возвращает результат как
Traversable.Каждый аргумент pathsegments может содержать несколько имён, разделенных слешами (
/,posixpath.sep). Например, следующие выражения эквивалентны:files.joinpath('subdir', 'subsuddir', 'file.txt') files.joinpath('subdir/subsuddir/file.txt')Обратите внимание, что некоторые реализации
Traversableмогут не быть обновлены до последней версии протокола. Для совместимости с такими реализациями предоставляйте один аргумент без разделителей путей для каждого вызоваjoinpath. Например:files.joinpath('subdir').joinpath('subsubdir').joinpath('file.txt')Изменено в версии 3.11:
joinpathпринимает несколько pathsegments, и эти сегменты могут содержать косые черты в качестве разделителей путей. Ранее принимался только один аргумент child.
-
abstractmethod __truediv__(child) -
Возвращает дочерний элемент Traversable в self. Эквивалентно
joinpath(child).
-
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.Загрузчики, желающие поддерживать чтение ресурсов, должны реализовывать этот интерфейс.
-
abstractmethod files() -
Возвращает объект
importlib.resources.abc.Traversableдля загруженного пакета.
-
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/importlib.resources.abc.html