2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
:mod:`pyclbr` --- Python class browser support
|
|
|
|
==============================================
|
|
|
|
|
|
|
|
.. module:: pyclbr
|
|
|
|
:synopsis: Supports information extraction for a Python class browser.
|
|
|
|
.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
|
|
|
|
|
|
|
|
|
|
|
|
The :mod:`pyclbr` can be used to determine some limited information about the
|
|
|
|
classes, methods and top-level functions defined in a module. The information
|
|
|
|
provided is sufficient to implement a traditional three-pane class browser. The
|
|
|
|
information is extracted from the source code rather than by importing the
|
|
|
|
module, so this module is safe to use with untrusted source code. This
|
|
|
|
restriction makes it impossible to use this module with modules not implemented
|
|
|
|
in Python, including many standard and optional extension modules.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: readmodule(module[, path])
|
|
|
|
|
|
|
|
Read a module and return a dictionary mapping class names to class descriptor
|
2007-10-21 07:45:46 -03:00
|
|
|
objects. The parameter *module* should be the name of a module as a string;
|
|
|
|
it may be the name of a module within a package. The *path* parameter should
|
|
|
|
be a sequence, and is used to augment the value of ``sys.path``, which is
|
|
|
|
used to locate module source code.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
.. % The 'inpackage' parameter appears to be for internal use only....
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: readmodule_ex(module[, path])
|
|
|
|
|
|
|
|
Like :func:`readmodule`, but the returned dictionary, in addition to mapping
|
|
|
|
class names to class descriptor objects, also maps top-level function names to
|
|
|
|
function descriptor objects. Moreover, if the module being read is a package,
|
|
|
|
the key ``'__path__'`` in the returned dictionary has as its value a list which
|
|
|
|
contains the package search path.
|
|
|
|
|
|
|
|
.. % The 'inpackage' parameter appears to be for internal use only....
|
|
|
|
|
|
|
|
|
|
|
|
.. _pyclbr-class-objects:
|
|
|
|
|
|
|
|
Class Descriptor Objects
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
The class descriptor objects used as values in the dictionary returned by
|
|
|
|
:func:`readmodule` and :func:`readmodule_ex` provide the following data members:
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: class_descriptor.module
|
|
|
|
|
|
|
|
The name of the module defining the class described by the class descriptor.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: class_descriptor.name
|
|
|
|
|
|
|
|
The name of the class.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: class_descriptor.super
|
|
|
|
|
|
|
|
A list of class descriptors which describe the immediate base classes of the
|
|
|
|
class being described. Classes which are named as superclasses but which are
|
|
|
|
not discoverable by :func:`readmodule` are listed as a string with the class
|
|
|
|
name instead of class descriptors.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: class_descriptor.methods
|
|
|
|
|
|
|
|
A dictionary mapping method names to line numbers.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: class_descriptor.file
|
|
|
|
|
|
|
|
Name of the file containing the ``class`` statement defining the class.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: class_descriptor.lineno
|
|
|
|
|
|
|
|
The line number of the ``class`` statement within the file named by
|
|
|
|
:attr:`file`.
|
|
|
|
|
|
|
|
|
|
|
|
.. _pyclbr-function-objects:
|
|
|
|
|
|
|
|
Function Descriptor Objects
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
The function descriptor objects used as values in the dictionary returned by
|
|
|
|
:func:`readmodule_ex` provide the following data members:
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: function_descriptor.module
|
|
|
|
|
|
|
|
The name of the module defining the function described by the function
|
|
|
|
descriptor.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: function_descriptor.name
|
|
|
|
|
|
|
|
The name of the function.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: function_descriptor.file
|
|
|
|
|
|
|
|
Name of the file containing the ``def`` statement defining the function.
|
|
|
|
|
|
|
|
|
|
|
|
.. attribute:: function_descriptor.lineno
|
|
|
|
|
|
|
|
The line number of the ``def`` statement within the file named by :attr:`file`.
|
|
|
|
|