codegrapher package¶
Submodules¶
codegrapher.graph module¶
- exception codegrapher.graph.FilenameNotSpecifiedException¶
Bases: exceptions.Exception
An exception raised when a file name is not specified in a FunctionGrapher instance before calling FunctionGrapher.render() on it.
- class codegrapher.graph.FunctionGrapher¶
Bases: object
FunctionGrapher is a class for producing graphviz graphs showing the call graph for sets of classes.
- name¶
string
Name to be used when a graph is made.
- nodes¶
set
Graphviz nodes to be graphed.
- edges¶
set
Directional edges connecting one node to another.
- format¶
string
File format for graph. Default is pdf.
- add_classes_to_graph(classes, relative_namespace)¶
Adds classes with constructors to the set. This adds edges between a class constructor and the methods called on those items.
Parameters: classes (list) – list of codegrapher.parser.ClassObject items.
- add_dict_to_graph(class_names, dictionary, relative_namespace)¶
Creates a list of nodes and edges to be rendered. Deduplicates input.
Parameters: - class_names (list) – List of class names to be recognized by the graph as class_name.__init__ nodes.
- dictionary (dict) – ClassObject.call_tree dict to be added to graph nodes and edges.
- add_file_to_graph(file_object)¶
When given a codegrapher.parser.FileObject object, this adds all classes to the current graph.
Parameters: file_object (codegrapher.parser.FileObject) – Visitor objects to have all its classes added to the current graph.
- render(name=None)¶
Renders the current graph.
Parameters: name (string) – filename to override self.name. Raises: FilenameNotSpecifiedException – If FunctionGrapher.name is not specified.
- class codegrapher.graph.Node(input_node)¶
Bases: object
A class to more easily handle manipulations needed to properly display nodes in a graph. Optimized to handle nodes that represent functions in a program.
- tuple¶
tuple
Contains the namespace, class, and function name for the current node.
- represent¶
Provides a string representation of the current node
Returns: (string): Dotted form of current node, as in namespace.class.function_name.
codegrapher.parser module¶
- class codegrapher.parser.CallInspector¶
Bases: ast.NodeVisitor
Within a call, a Name or Attribute will provide the function name currently in use.
Identifies Name nodes, which are called as name(args), and Attribute nodes, which are called as object.attr(args)
- visit_Attribute(node)¶
- visit_Name(node)¶
- class codegrapher.parser.CallVisitor(**kwargs)¶
Bases: codegrapher.parser.ImportVisitor
Finds all calls present in the current scope and inspect them.
- call_names¶
set
set of CallInspector.identifier items within current AST node.
- calls¶
list
(module, identifier) items called within current AST node, with identifiers decoded form current alias, and modules expanded to their full import paths.
- continue_parsing(node)¶
- visit_Call(node)¶
- class codegrapher.parser.ClassObject(node=None, aliases=None, modules=None)¶
Bases: object
Class for keeping track of classes in code.
- modules¶
dict
dict of current modules with alias: module_name, key:value pairs.
- aliases¶
dict
dict of current modules with alias: original_name, key:value pairs.
- node¶
ast.AST
AST node for entire class.
- name¶
string
Class name.
- functions¶
list
FunctionObject items defined in the current class.
- call_tree¶
dict
dict with key:value pairs (module, FunctionObject.name): (module, identifier).
- namespace(relative_namespace)¶
- pprint()¶
Pretty print formatter for class object.
Returns: string
- remove_builtins()¶
For many classes, we may not want to include builtin functions in the graph. Remove builtins from the call tree and from called functions list.
- visit()¶
Visits all the nodes within the current class AST node.
Updates self.functions and self.call_tree for the current instance.
- class codegrapher.parser.FileObject(file_name, modules=None, aliases=None)¶
Bases: object
Class for keeping track of files.
- modules¶
dict
dict of current modules with alias: module_name, key:value pairs.
- aliases¶
dict
dict of current modules with alias: original_name, key:value pairs.
- node¶
ast.AST
AST node for entire file.
- name¶
string
File name.
- classes¶
list
ClassObject items defined in the current file.
- namespace()¶
Programmatically change the name of items in the call tree so they have relative path information :return:
- remove_builtins()¶
Removes builtins from each class in a FileObject instance.
- visit()¶
Visits all the nodes within the current file AST node.
Updates self.classes for the current instance.
- class codegrapher.parser.FileVisitor(**kwargs)¶
Bases: codegrapher.parser.ImportVisitor
First visitor that should be called on the file level.
- classes¶
list
list of ClassObject instances defined in the current file.
- continue_parsing(node)¶
- remove_builtins()¶
Removes builtins from each class in a FileVisitor instance.
- visit_ClassDef(node)¶
- visit_Module(node)¶
- class codegrapher.parser.FunctionObject(node=None, aliases=None, modules=None)¶
Bases: object
Object that stores information within a single function definition
- modules¶
dict of current modules with alias: module_name, key:value pairs.
- aliases¶
dict of current modules with alias: original_name, key:value pairs.
- node¶
ast.AST
AST node for entire function.
- name¶
string
function name.
- calls¶
list
(module, identifier) tuples describing items called within current node, with identifiers decoded form current alias, and modules expanded to their full import paths.
- visit()¶
Visits all the nodes within the current function object’s AST node.
Updates self.calls, self.modules, and self.aliases for the current instance.
- class codegrapher.parser.FunctionVisitor(**kwargs)¶
Bases: codegrapher.parser.ImportVisitor
Function definitions are where the function is defined, and the call is where the ast for that function exists.
This only looks for items that are called within the scope of a function, and associates those items with the function.
- defined_functions¶
set
names of functions found by function visitor instance.
- functions¶
list
FunctionObject instances found by function visitor instance.
- calls¶
dict
mapping from function names defined to calls within that function definition.
- continue_parsing(node)¶
- visit_FunctionDef(node)¶
- class codegrapher.parser.ImportVisitor(aliases=None, modules=None)¶
Bases: ast.NodeVisitor
For import related calls, store the source modules and aliases used. Designed to be inherited by other classes that need to know about imports in their current scope.
- modules¶
dict
dict of current modules with alias: module_name, key:value pairs.
- aliases¶
dict
dict of current modules with alias: original_name, key:value pairs.
- continue_parsing(node)¶
- visit_Import(node)¶
- visit_ImportFrom(node)¶