Package epydoc :: Module apidoc :: Class DocIndex
[hide private]
[frames] | no frames]

Class DocIndex
source code

[xx] out of date.

An index that .. hmm... it *can't* be used to access some things, cuz they're not at the root level. Do I want to add them or what? And if so, then I have a sort of a new top level. hmm.. so basically the question is what to do with a name that's not in the root var's name space. 2 types:

An index of all the APIDoc objects that can be reached from a root set of ValueDocs.

The members of this index can be accessed by dotted name. In particular, DocIndex defines two mappings, accessed via the get_vardoc() and get_valdoc() methods, which can be used to access VariableDocs or ValueDocs respectively by name. (Two separate mappings are necessary because a single name can be used to refer to both a variable and to the value contained by that variable.)

Additionally, the index defines two sets of ValueDocs: "reachable ValueDocs" and "contained ValueDocs". The reachable ValueDocs are defined as the set of all ValueDocs that can be reached from the root set by following any sequence of pointers to ValueDocs or VariableDocs. The contained ValueDocs are defined as the set of all ValueDocs that can be reached from the root set by following only the ValueDoc pointers defined by non-imported VariableDocs. For example, if the root set contains a module m, then the contained ValueDocs includes the ValueDocs for any functions, variables, or classes defined in that module, as well as methods and variables defined in classes defined in the module. The reachable ValueDocs includes all of those ValueDocs, as well as ValueDocs for any values imported into the module, and base classes for classes defined in the module.

Instance Methods [hide private]
  __init__(self, root)
Create a new documentation index, based on the given root set of ValueDocs.
  get_vardoc(self, name)
Return the VariableDoc with the given name, or None if this index does not contain a VariableDoc with the given name.
  get_valdoc(self, name)
Return the ValueDoc with the given name, or None if this index does not contain a ValueDoc with the given name.
  _get(self, name)
A helper function that's used to implement get_vardoc() and get_valdoc().
  _get_from(self, val_doc, identifier)
  find(self, name, context)
Look for a ValueDoc named name, relative to context.
  reachable_valdocs(self, **filters)
Return a list of all ValueDocs that can be reached, directly or indirectly from this DocIndex's root set.
  container(self, api_doc)
Return the ValueDoc that contains the given APIDoc, or None if its container is not in the index.
  read_profiling_info(self, profile_stats)
Initialize the callers and callees variables, given a Stat object from the pstats module.
  _update_funcid_to_doc(self, profile_stats)
Update the dictionary mapping from pstat.Stat funciton ids to RoutineDocs.

Instance Variables [hide private]
callers A dictionary mapping from RoutineDocs in this index to lists of RoutineDocs for the routine's callers.
callees A dictionary mapping from RoutineDocs in this index to lists of RoutineDocs for the routine's callees.

Method Details [hide private]

__init__(self, root)
(Constructor)

source code 
call graph 
Create a new documentation index, based on the given root set of ValueDocs. If any APIDocs reachable from the root set does not have a canonical name, then it will be assigned one. etc.
Parameters:
  • root - A list of ValueDocs.

get_vardoc(self, name)

source code 
call graph 
Return the VariableDoc with the given name, or None if this index does not contain a VariableDoc with the given name.

get_valdoc(self, name)

source code 
call graph 
Return the ValueDoc with the given name, or None if this index does not contain a ValueDoc with the given name.

_get(self, name)

source code 
call graph 
A helper function that's used to implement get_vardoc() and get_valdoc().

_get_from(self, val_doc, identifier)

source code 
call graph 

find(self, name, context)

source code 
call graph 
Look for a ValueDoc named name, relative to context. Return the ValueDoc if one is found; otherwise, return None. find looks in the following places, in order:
  • Function parameters (if one matches, return None)
  • All enclosing namespaces, from closest to furthest.
  • If name starts with 'self', then strip it off and look for the remaining part of the name using find
  • Builtins
  • Parameter attributes

reachable_valdocs(self, **filters)

source code 
call graph 
Return a list of all ValueDocs that can be reached, directly or indirectly from this DocIndex's root set.
Parameters:
  • filters - A set of filters that can be used to prevent reachable_valdocs from following specific link types when looking for ValueDocs that can be reached from the root set. See APIDoc.apidoc_links for a more complete description.

container(self, api_doc)

source code 
call graph 
Return the ValueDoc that contains the given APIDoc, or None if its container is not in the index.

read_profiling_info(self, profile_stats)

source code 
Initialize the callers and callees variables, given a Stat object from the pstats module.

Warning: This method uses undocumented data structures inside of profile_stats.

_update_funcid_to_doc(self, profile_stats)

source code 
Update the dictionary mapping from pstat.Stat funciton ids to RoutineDocs. pstat.Stat function ids are tuples of (filename, lineno, funcname).

Instance Variable Details [hide private]

callers

A dictionary mapping from RoutineDocs in this index to lists of RoutineDocs for the routine's callers. This dictionary is initialized by calling read_profiling_info().
Type:
list of RoutineDoc

callees

A dictionary mapping from RoutineDocs in this index to lists of RoutineDocs for the routine's callees. This dictionary is initialized by calling read_profiling_info().
Type:
list of RoutineDoc