congress.datalog.factset module

congress.datalog.factset module

class congress.datalog.factset.FactSet

Bases: object

Maintains a set of facts, and provides indexing for efficient iteration, given a partial or full match. Expects that all facts are the same width.

add(fact)

Add a fact to the FactSet

Returns True if the fact is absent from this FactSet and adds the fact, otherwise returns False.

create_index(columns)

Create an index

@columns is a tuple of column indicies that index into the facts in self. @columns must be sorted in ascending order, and each column index must be less than the width of a fact in self. If the index exists, do nothing.

find(partial_fact, iterations=None)

Find Facts given a partial fact

@partial_fact is a tuple of pair tuples. The first item in each pair tuple is an index into a fact, and the second item is a value to match again self._facts. Expects the pairs to be sorted by index in ascending order.

@iterations is either an empty list or None. If @iterations is an empty list, then find() will append the number of iterations find() used to compute the return value(this is useful for testing indexing).

Returns matching Facts.

has_index(columns)

Returns True if the index exists.

remove(fact)

Remove a fact from the FactSet

Returns True if the fact is in this FactSet and removes the fact, otherwise returns False.

remove_index(columns)

Remove an index

@columns is a tuple of column indicies that index into the facts in self. @columns must be sorted in ascending order, and each column index must be less than the width of a fact in self. If the index does not exists, raise KeyError.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.