"pyclbr" --- Python module browser support
******************************************

**Código-fonte:** Lib/pyclbr.py

======================================================================

O módulo "pyclbr" fornece informações limitadas sobre as funções,
classes e métodos definidos em um módulo codificado em Python. As
informações são suficientes para implementar um navegador de módulos.
As informações são extraídas do código-fonte do Python em vez de
importar o módulo, portanto, este módulo é seguro para uso com código
não confiável. Essa restrição torna impossível o uso deste módulo com
módulos não implementados no Python, incluindo todos os módulos de
extensão padrão e opcionais.

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 Função
==============

class pyclbr.Function

   Class "Function" instances describe functions defined by def
   statements.  They have the following attributes:

   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

      For top-level functions, "None".  For nested functions, the
      parent.

      Adicionado na versão 3.7.

   children

      A "dictionary" mapping names to descriptors for nested functions
      and classes.

      Adicionado na versão 3.7.

   is_async

      "True" for functions that are defined with the "async" prefix,
      "False" otherwise.

      Adicionado na versão 3.10.


Objetos de Class
================

class pyclbr.Class

   Class "Class" instances describe classes defined by class
   statements.  They have the same attributes as "Functions" and two
   more.

   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

      For top-level classes, "None".  For nested classes, the parent.

      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

      A list of "Class" objects which describe the immediate base
      classes of the class being described.  Classes which are named
      as superclasses but which are not discoverable by
      "readmodule_ex()" are listed as a string with the class name
      instead of as "Class" objects.

   methods

      A "dictionary" mapping method names to line numbers. This can be
      derived from the newer "children" dictionary, but remains for
      back-compatibility.
