importlib.resources.abc – Clases base abstractas para recursos

Source code: Lib/importlib/resources/abc.py


Nuevo en la versión 3.11.

class importlib.resources.abc.ResourceReader

Superseded by TraversableResources

Un abstract base class para proporcionar la capacidad de leer resources.

Desde la perspectiva de este ABC, un resource es un artefacto binario que se envía dentro de un paquete. Por lo general, esto es algo así como un archivo de datos que se encuentra junto al archivo __init__.py del paquete. El propósito de esta clase es ayudar a abstraer el acceso a dichos archivos de datos para que no importe si el paquete y sus archivos de datos están almacenados por ejemplo en un .zip en comparación con el sistema de archivos.

Para cualquiera de los métodos de esta clase, se espera que un argumento resource sea un path-like object que represente conceptualmente solo un nombre de archivo. Esto significa que no se deben incluir rutas de subdirectorios en el argumento resource. Esto se debe a que la ubicación del paquete para el que se encuentra el lector actúa como el «directorio». Por lo tanto, la metáfora de directorios y nombres de archivos es paquetes y recursos, respectivamente. Esta es también la razón por la que se espera que las instancias de esta clase se correlacionen directamente con un paquete específico (en lugar de representar potencialmente varios paquetes o un módulo).

Se espera que los cargadores que deseen admitir la lectura de recursos proporcionen un método llamado get_resource_reader(fullname) que retorna un objeto que implementa la interfaz de este ABC. Si el módulo especificado por nombre completo no es un paquete, este método debería retornar None. Un objeto compatible con este ABC solo debe retornarse cuando el módulo especificado es un paquete.

Nuevo en la versión 3.7.

abstractmethod open_resource(resource)

Retorna un file-like object abierto para la lectura binaria del resource.

Si no se puede encontrar el recurso, se genera FileNotFoundError.

abstractmethod resource_path(resource)

Retorna la ruta del sistema de archivos al resource.

Si el recurso no existe concretamente en el sistema de archivos, lanza FileNotFoundError.

abstractmethod is_resource(name)

Retorna True si el name con nombre se considera un recurso. FileNotFoundError se genera si name no existe.

abstractmethod contents()

Retorna un iterable de cadenas sobre el contenido del paquete. Tenga en cuenta que no se requiere que todos los nombres devueltos por el iterador sean recursos reales, p. es aceptable devolver nombres para los que is_resource() sería falso.

Permitir que se retornen nombres que no son de recursos es permitir situaciones en las que se conoce a priori cómo se almacenan un paquete y sus recursos y los nombres que no son de recursos serían útiles. Por ejemplo, se permite devolver nombres de subdirectorios para que cuando se sepa que el paquete y los recursos están almacenados en el sistema de archivos, esos nombres de subdirectorios se puedan usar directamente.

El método abstracto retorna un iterable sin elementos.

class importlib.resources.abc.Traversable

Un objeto con un subconjunto de métodos pathlib.Path adecuados para atravesar directorios y abrir archivos.

Nuevo en la versión 3.9.

name

Resumen. El nombre base de este objeto sin ninguna referencia principal.

abstractmethod iterdir()

Produce generador iterador de objetos Traversable en self.

abstractmethod is_dir()

Retorna True si self es un directorio.

abstractmethod is_file()

Retorna True si self es un archivo.

abstractmethod joinpath(child)

Regresar Traversable child en self.

abstractmethod __truediv__(child)

Regresar Traversable child en self.

abstractmethod open(mode='r', *args, **kwargs)

mode puede ser “r” o “rb” para abrir como texto o binario. Retorna un identificador adecuado para la lectura (igual que pathlib.Path.open).

Al abrirse como texto, acepta parámetros de codificación como los aceptados por io.TextIOWrapper.

read_bytes()

Lee el contenido de self como bytes.

read_text(encoding=None)

Lee el contenido de self como texto.

class importlib.resources.abc.TraversableResources

An abstract base class for resource readers capable of serving the importlib.resources.files() interface. Subclasses importlib.resources.abc.ResourceReader and provides concrete implementations of the importlib.resources.abc.ResourceReader’s abstract methods. Therefore, any loader supplying importlib.abc.TraversableResources also supplies ResourceReader.

Se espera que los cargadores que deseen admitir la lectura de recursos implementen esta interfaz.

Nuevo en la versión 3.9.

abstractmethod files()

Retorna un objeto importlib.resources.abc.Traversable para el paquete cargado.