pyclbr — Suporte a navegador de módulos do Python

Código-fonte: Lib/pyclbr.py


The pyclbr module provides limited information about the functions, classes, and methods defined in a Python-coded module. The information is sufficient to implement a module browser. The information is extracted from the Python source code rather than by importing the module, so this module is safe to use with untrusted code. This restriction makes it impossible to use this module with modules not implemented in Python, including all standard and optional extension modules.

pyclbr.readmodule(module, path=None)

Retorna um dicionário que mapeia os nomes de classe no nível do módulo aos descritores de classe. Se possível, descritores para classes base importadas estão incluídos. O parâmetro module é uma string com o nome do módulo a ser lido; pode ser o nome de um módulo dentro de um pacote. Se fornecido, path é uma sequência de caminhos de diretório anexada a sys.path, que é usada para localizar o código-fonte do módulo.

Esta função é a interface original e é mantida apenas para compatibilidade reversa. Ela retorna uma versão filtrada da seguinte.

pyclbr.readmodule_ex(module, path=None)

Retorna uma árvore baseada em dicionário que contém uma função ou descritores de classe para cada função e classe definida no módulo com uma instrução def ou class. O dicionário retornado mapeia os nomes das funções e das classes no nível do módulo para seus descritores. Objetos aninhados são inseridos no dicionário filho de seus pais. Como em readmodule, module nomeia o módulo a ser lido e path é anexado ao sys.path. Se o módulo que está sendo lido for um pacote, o dicionário retornado terá uma chave '__path__' cujo valor é uma lista que contém o caminho de pesquisa do pacote.

Adicionado na versão 3.7: Descritores para definições aninhadas. Eles são acessados através do novo atributo filho. Cada um tem um novo atributo pai.

Os descritores retornados por essas funções são instâncias das classes Function e Class. Não se espera que os usuários criem instâncias dessas classes.

Objetos Function

class pyclbr.Function

Instâncias da classe Function descrevem funções definidas por instruções def. Elas têm os seguintes atributos:

file

Nome do arquivo no qual a função está definida.

module

O nome do módulo que define a função descrita.

name

O nome da função.

lineno

O número da linha no arquivo em que a definição é iniciada.

parent

Para funções de nível superior, None. Para funções aninhadas, o pai.

Adicionado na versão 3.7.

children

Um dicionário que mapeia nomes para descritores para funções e classes aninhadas.

Adicionado na versão 3.7.

is_async

True para funções que são definidas com o prefixo async. Caso contrário, False.

Adicionado na versão 3.10.

Objetos Class

class pyclbr.Class

Instâncias da classe Class descrevem classes definidas por instruções class. Elas têm os mesmos atributos que Functions e mais dois.

file

Nome do arquivo no qual a classe está definida.

module

O nome do módulo que define a classe descrita.

name

O nome da classe.

lineno

O número da linha no arquivo em que a definição é iniciada.

parent

Para classes de nível superior, None. Para classes aninhadas, o pai.

Adicionado na versão 3.7.

children

Um dicionário que mapeia nomes para descritores para funções e classes aninhadas.

Adicionado na versão 3.7.

super

Uma lista de objetos Class que descreve as classes base imediatas da classe que está sendo descrita. Classes nomeadas como superclasses, mas que não podem ser descobertas por readmodule_ex() são listadas como uma string com o nome da classe em vez de como objetos de Class.

methods

Um dicionário que mapeia nomes de métodos para números de linha. Isso pode ser derivado do dicionário children mais novo, mas permanece para compatibilidade retroativa.