Package pyffi :: Package utils :: Module graph
[hide private]
[frames] | no frames]

Module graph

source code

Base classes for organizing data (for instance to visualize data with Qt, or to run hierarchical checks) in a global graph, and a detail tree at each node of the global graph.

The classes defined here assume that data can be organized in two stages: a global level which only shows 'top-level' objects (i.e. large file blocks, chunks, and so on) as nodes and links between the nodes via directed arcs, and a detail level which shows the details of a top-level object, that is, the actual data they contain.

DetailNode implements the detail side of things. The GlobalNode class implements the global level, which does not show any actual data, but only structure.

The global level forms a directed graph where the nodes are data blocks and directed edges represent links from one block to another.

This directed graph is assumed to have a spanning acyclic directed subgraph, that is, a subgraph which contains all nodes of the original graph, and which contains no cycles. This graph constitutes of those edges which have the default edge type.

The pyffi.object_models.Data class is the root node of the graph. Recursing over all edges of default type of this node will visit each node (possibly more than once) in a hierarchical order.

The base classes are roughly based on the TreeItem example in the Qt docs: http://doc.trolltech.com/4.4/itemviews-simpletreemodel.html

Classes [hide private]
  EdgeType
Represents all possible edge types.
  EdgeFilter
A simple filter for edges.
  DetailNode
A node of the detail tree which can have children.
  GlobalNode
A node of the global graph.
Variables [hide private]
  __package__ = 'pyffi.utils'