importlib.resources.abc – Абстрактные базовые классы для ресурсов
Исходный код: Lib/importlib/resources/abc.py
Добавлено в версии 3.11.
-
class importlib.resources.abc.ResourceReader -
Устарел, вместо него следует использовать TraversableResources
абстрактный базовый класс, предоставляющий возможность читать ресурсы.
С точки зрения этого ABC, ресурс — это двоичный артефакт, поставляемый в составе пакета. Обычно это файл данных, находящийся рядом с файлом
__init__.pyпакета. Этот класс предназначен для абстрагирования доступа к таким файлам данных, чтобы способ хранения пакета и его файлов данных не имел значения: например, в ZIP-файле или в файловой системе.Для любого метода этого класса аргумент resource должен быть объектом, подобным пути, который концептуально представляет собой только имя файла. Это означает, что аргумент resource не должен содержать пути к подкаталогам. Причина в том, что местоположение пакета, для которого предназначен читатель, играет роль «каталога». Таким образом, пакетам и ресурсам соответствуют каталоги и имена файлов. Именно поэтому ожидается, что экземпляры этого класса будут напрямую связаны с конкретным пакетом, а не потенциально представлять несколько пакетов или модуль.
Ожидается, что загрузчики, поддерживающие чтение ресурсов, предоставят метод с именем
get_resource_reader(fullname), возвращающий объект, реализующий интерфейс этого ABC. Если модуль, заданный параметром fullname, не является пакетом, этот метод должен возвращатьNone. Объект, совместимый с этим ABC, следует возвращать только в том случае, если указанный модуль является пакетом.Устарело с версии 3.12: Вместо этого используйте
importlib.resources.abc.TraversableResources.-
abstractmethod open_resource(resource) -
Возвращает открытый файлоподобный объект для чтения ресурса в двоичном режиме.
Если ресурс не найден, возникает исключение
FileNotFoundError.
-
abstractmethod resource_path(resource) -
Возвращает путь к ресурсу в файловой системе.
Если ресурс фактически не существует в файловой системе, возникает исключение
FileNotFoundError.
-
abstractmethod is_resource(path) -
Возвращает
True, если указанный path считается ресурсом. Если path не существует, возникает исключениеFileNotFoundError.Изменено в версии 3.10: Аргумент name переименован в path.
-
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 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/importlib.resources.abc.html