importlib.resources.abc
– Абстрактные базовые классы для ресурсов¶
Исходный код: Lib/importlib/resources/abc.py
Добавлено в версии 3.11.
- class importlib.resources.abc.ResourceReader¶
**Заменено проходимыми ресурсами*
abstract base class, чтобы обеспечить возможность чтения ресурсов.
С точки зрения этой азбуки, ресурс - это двоичный артефакт, который поставляется в пакете. Обычно это что-то вроде файла данных, который находится рядом с
__init__.py
файлом пакета. Цель этого класса - помочь абстрагироваться от доступа к таким файлам данных, чтобы не имело значения, хранятся ли пакет и его файлы данных, например, в zip-файле, а не в файловой системе.Для любого из методов этого класса аргументом resource должен быть path-like object, который концептуально представляет собой просто имя файла. Это означает, что пути к подкаталогам не должны быть включены в аргумент resource. Это связано с тем, что местоположение пакета, для которого предназначен считыватель, действует как «каталог». Следовательно, метафорой для каталогов и имен файлов являются пакеты и ресурсы соответственно. Именно поэтому ожидается, что экземпляры этого класса будут напрямую соотноситься с конкретным пакетом (вместо того, чтобы потенциально представлять несколько пакетов или модуль).
Ожидается, что загрузчики, которые хотят поддерживать чтение ресурсов, будут предоставлять метод с именем
get_resource_reader(fullname)
, который возвращает объект, реализующий этот интерфейс ABC. Если модуль, указанный с помощью fullname, не является пакетом, этот метод должен возвращатьNone
. Объект, совместимый с этим ABC, должен быть возвращен только в том случае, если указанный модуль является пакетом.Добавлено в версии 3.7.
- abstractmethod open_resource(resource)¶
Возвращает значение opened, file-like object для двоичного считывания ресурса.
Если ресурс не может быть найден, выводится значение
FileNotFoundError
.
- abstractmethod resource_path(resource)¶
Возвращает путь к файловой системе resource.
Если ресурс конкретно не существует в файловой системе, поднимите
FileNotFoundError
.
- abstractmethod is_resource(name)¶
Возвращает
True
, если указанный name считается ресурсом.FileNotFoundError
вызывается, если name не существует.
- abstractmethod contents()¶
Возвращает iterable строк по содержимому пакета. Обратите внимание, что не обязательно, чтобы все имена, возвращаемые итератором, были реальными ресурсами, например, допустимо возвращать имена, для которых
is_resource()
будет иметь значение false.Разрешение возвращать имена, не относящиеся к ресурсам, предназначено для того, чтобы учесть ситуации, когда способ хранения пакета и его ресурсов известен априори, и имена, не относящиеся к ресурсам, были бы полезны. Например, разрешено возвращать имена подкаталогов, чтобы, когда будет известно, что пакет и ресурсы хранятся в файловой системе, эти имена подкаталогов можно было использовать напрямую.
Абстрактный метод возвращает iterable, не содержащий элементов.
- class importlib.resources.abc.Traversable¶
Объект с подмножеством методов
pathlib.Path
, подходящих для перемещения по каталогам и открытия файлов.Для представления объекта в файловой системе используйте
importlib.resources.as_file()
.Добавлено в версии 3.9.
- name¶
Абстрактный. Базовое имя этого объекта без каких-либо родительских ссылок.
- abstractmethod iterdir()¶
Получайте проходимые объекты в self.
- abstractmethod is_dir()¶
Возвращает True, если self - это каталог.
- abstractmethod is_file()¶
Возвращает True, если self - это файл.
- abstractmethod joinpath(child)¶
Верните проходимого дочернего элемента в self.
- abstractmethod __truediv__(child)¶
Верните проходимого дочернего элемента в 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
объект для загруженного пакета.