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 o argumento resource seja um objeto caminho ou similar 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 retornarNone
. 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 arquivo ou similar 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 de
pathlib.Path
adequados para percorrer diretórios e abrir arquivos.Para uma representação do objeto no sistema de arquivos, use
importlib.resources.as_file()
.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()
. É uma subclasse deResourceReader
e fornece implementações concretas dos métodos abstratos deResourceReader
. Portanto, qualquer carregador que forneçaTraversableResources
também forneceResourceReader
.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.