diff options
Diffstat (limited to 'Doc/library/pyclbr.rst')
-rw-r--r-- | Doc/library/pyclbr.rst | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/Doc/library/pyclbr.rst b/Doc/library/pyclbr.rst new file mode 100644 index 0000000..5a77b4e --- /dev/null +++ b/Doc/library/pyclbr.rst @@ -0,0 +1,112 @@ + +: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 + 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. + + .. % 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`. + |