1:mod:`pyclbr` --- Python class browser support 2============================================== 3 4.. module:: pyclbr 5 :synopsis: Supports information extraction for a Python class browser. 6.. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org> 7 8**Source code:** :source:`Lib/pyclbr.py` 9 10-------------- 11 12The :mod:`pyclbr` module can be used to determine some limited information 13about the classes, methods and top-level functions defined in a module. The 14information provided is sufficient to implement a traditional three-pane 15class browser. The information is extracted from the source code rather 16than by importing the module, so this module is safe to use with untrusted 17code. This restriction makes it impossible to use this module with modules 18not implemented in Python, including all standard and optional extension 19modules. 20 21 22.. function:: readmodule(module, path=None) 23 24 Read a module and return a dictionary mapping class names to class 25 descriptor objects. The parameter *module* should be the name of a 26 module as a string; it may be the name of a module within a package. The 27 *path* parameter should be a sequence, and is used to augment the value 28 of ``sys.path``, which is used to locate module source code. 29 30 31.. function:: readmodule_ex(module, path=None) 32 33 Like :func:`readmodule`, but the returned dictionary, in addition to 34 mapping class names to class descriptor objects, also maps top-level 35 function names to function descriptor objects. Moreover, if the module 36 being read is a package, the key ``'__path__'`` in the returned 37 dictionary has as its value a list which contains the package search 38 path. 39 40 41.. _pyclbr-class-objects: 42 43Class Objects 44------------- 45 46The :class:`Class` objects used as values in the dictionary returned by 47:func:`readmodule` and :func:`readmodule_ex` provide the following data 48attributes: 49 50 51.. attribute:: Class.module 52 53 The name of the module defining the class described by the class descriptor. 54 55 56.. attribute:: Class.name 57 58 The name of the class. 59 60 61.. attribute:: Class.super 62 63 A list of :class:`Class` objects which describe the immediate base 64 classes of the class being described. Classes which are named as 65 superclasses but which are not discoverable by :func:`readmodule` are 66 listed as a string with the class name instead of as :class:`Class` 67 objects. 68 69 70.. attribute:: Class.methods 71 72 A dictionary mapping method names to line numbers. 73 74 75.. attribute:: Class.file 76 77 Name of the file containing the ``class`` statement defining the class. 78 79 80.. attribute:: Class.lineno 81 82 The line number of the ``class`` statement within the file named by 83 :attr:`~Class.file`. 84 85 86.. _pyclbr-function-objects: 87 88Function Objects 89---------------- 90 91The :class:`Function` objects used as values in the dictionary returned by 92:func:`readmodule_ex` provide the following attributes: 93 94 95.. attribute:: Function.module 96 97 The name of the module defining the function described by the function 98 descriptor. 99 100 101.. attribute:: Function.name 102 103 The name of the function. 104 105 106.. attribute:: Function.file 107 108 Name of the file containing the ``def`` statement defining the function. 109 110 111.. attribute:: Function.lineno 112 113 The line number of the ``def`` statement within the file named by 114 :attr:`~Function.file`. 115 116