importlib.resources.abc – Classes base abstratas para recursos

Código-fonte: Lib/importlib/resources/abc.py


Novo na versão 3.11.

class importlib.resources.abc.ResourceReader

Substituída por TraversableResources

Uma classe base abstrata para fornecer a capacidade de ler recursos.

Da perspectiva deste ABC, um recurso é um artefato binário que é enviado dentro de um pacote. Normalmente isso é algo como um arquivo de dados que fica próximo ao arquivo __init__.py do pacote. O objetivo desta classe é ajudar a abstrair o acesso a tais arquivos de dados para que não importe se o pacote e seu(s) arquivo(s) de dados estão armazenados em um arquivo, por exemplo, zip versus no sistema de arquivos.

Para qualquer um dos métodos desta classe, espera-se que um argumento rescurso seja um objeto tipo arquivo que representa conceitualmente apenas um nome de arquivo. Isso significa que nenhum caminho de subdiretório deve ser incluído no argumento resource. Isso ocorre porque a localização do pacote para o qual o leitor se destina, atua como o “diretório”. Portanto, a metáfora para diretórios e nomes de arquivos são pacotes e recursos, respectivamente. É também por isso que se espera que as instâncias dessa classe se correlacionem diretamente a um pacote específico (em vez de representar potencialmente vários pacotes ou um módulo).

Carregadores que desejam oferecer suporte à leitura de recursos devem fornecer um método chamado get_resource_reader(nomecompleto) que retorna um objeto implementando esta interface ABC. Se o módulo especificado por nomecompleto não for um pacote, este método deve retornar None. Um objeto compatível com este ABC só deve ser retornado quando o módulo especificado for um pacote.

Novo na versão 3.7.

abstractmethod open_resource(resource)

Retorna um objeto tipo arquivo aberto para leitura binária de resource.

Se o recurso não puder ser encontrado, FileNotFoundError é levantada.

abstractmethod resource_path(resource)

Retorna o caminho do sistema de arquivos para resource.

Se o recurso não existir concretamente no sistema de arquivos, levanta FileNotFoundError.

abstractmethod is_resource(name)

Retorna True se o name nomeado for considerado um recurso. FileNotFoundError é levantada se name não existir.

abstractmethod contents()

Retorna um iterável de strings sobre o conteúdo do pacote. Observe que não é necessário que todos os nomes retornados pelo iterador sejam recursos reais, por exemplo, é aceitável retornar nomes para os quais is_resource() seria falso.

Permitir que nomes que não são recursos sejam retornados é permitir situações em que a forma como um pacote e seus recursos são armazenados é conhecida a priori e os nomes que não são recursos seriam úteis. Por exemplo, o retorno de nomes de subdiretórios é permitido para que, quando se souber que o pacote e os recursos estão armazenados no sistema de arquivos, esses nomes de subdiretórios possam ser usados diretamente.

O método abstrato retorna um iterável sem itens.

class importlib.resources.abc.Traversable

Um objeto com um subconjunto de métodos pathlib.Path adequados para percorrer diretórios e abrir arquivos.

Novo na versão 3.9.

name

Abstrato. O nome base deste objeto sem nenhuma referência pai.

abstractmethod iterdir()

Produz objetos Traversable em self.

abstractmethod is_dir()

Retorna True se self for um diretório.

abstractmethod is_file()

Retorna True se self for um arquivo.

abstractmethod joinpath(child)

Retorna o filho Traversable em self.

abstractmethod __truediv__(child)

Retorna o filho Traversable em self.

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

mode pode ser ‘r’ ou ‘rb’ para abrir como texto ou binário. Retorna um manipulador adequado para leitura (o mesmo que pathlib.Path.open).

Ao abrir como texto, aceita parâmetros de codificação como os aceitos por io.TextIOWrapper.

read_bytes()

Lê o conteúdo de self como bytes.

read_text(encoding=None)

Lê o conteúdo de self como texto.

class importlib.resources.abc.TraversableResources

Uma classe base abstrata para leitores de recursos capaz de servir a interface importlib.resources.files(). Subclasse importlib.resources.abc.ResourceReader e fornece implementações concretas dos métodos abstratos de importlib.resources.abc.ResourceReader. Portanto, qualquer carregador que forneça importlib.abc.TraversableResources também fornece ResourceReader.

Espera-se que os carregadores que desejam oferecer suporte à leitura de recursos implementem essa interface.

Novo na versão 3.9.

abstractmethod files()

Retorna um objeto importlib.resources.abc.Traversable para o pacote carregado.