mirror of https://github.com/python/cpython
117 lines
3.2 KiB
ReStructuredText
117 lines
3.2 KiB
ReStructuredText
: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>
|
|
|
|
**Source code:** :source:`Lib/pyclbr.py`
|
|
|
|
--------------
|
|
|
|
The :mod:`pyclbr` module 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
|
|
code. This restriction makes it impossible to use this module with modules
|
|
not implemented in Python, including all standard and optional extension
|
|
modules.
|
|
|
|
|
|
.. function:: readmodule(module, path=None)
|
|
|
|
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.
|
|
|
|
|
|
.. function:: readmodule_ex(module, path=None)
|
|
|
|
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.
|
|
|
|
|
|
.. _pyclbr-class-objects:
|
|
|
|
Class Objects
|
|
-------------
|
|
|
|
The :class:`Class` objects used as values in the dictionary returned by
|
|
:func:`readmodule` and :func:`readmodule_ex` provide the following data
|
|
attributes:
|
|
|
|
|
|
.. attribute:: Class.module
|
|
|
|
The name of the module defining the class described by the class descriptor.
|
|
|
|
|
|
.. attribute:: Class.name
|
|
|
|
The name of the class.
|
|
|
|
|
|
.. attribute:: Class.super
|
|
|
|
A list of :class:`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 :func:`readmodule` are
|
|
listed as a string with the class name instead of as :class:`Class`
|
|
objects.
|
|
|
|
|
|
.. attribute:: Class.methods
|
|
|
|
A dictionary mapping method names to line numbers.
|
|
|
|
|
|
.. attribute:: Class.file
|
|
|
|
Name of the file containing the ``class`` statement defining the class.
|
|
|
|
|
|
.. attribute:: Class.lineno
|
|
|
|
The line number of the ``class`` statement within the file named by
|
|
:attr:`~Class.file`.
|
|
|
|
|
|
.. _pyclbr-function-objects:
|
|
|
|
Function Objects
|
|
----------------
|
|
|
|
The :class:`Function` objects used as values in the dictionary returned by
|
|
:func:`readmodule_ex` provide the following attributes:
|
|
|
|
|
|
.. attribute:: Function.module
|
|
|
|
The name of the module defining the function described by the function
|
|
descriptor.
|
|
|
|
|
|
.. attribute:: Function.name
|
|
|
|
The name of the function.
|
|
|
|
|
|
.. attribute:: Function.file
|
|
|
|
Name of the file containing the ``def`` statement defining the function.
|
|
|
|
|
|
.. attribute:: Function.lineno
|
|
|
|
The line number of the ``def`` statement within the file named by
|
|
:attr:`~Function.file`.
|
|
|