geosolver.constraint
index
/home/rick/Programming/Python/GeoSolver/geosolver/constraint.py

Module for constraint graphs
Copyright Rick van der Meiden 2003, 2004
Started 1 Nov 2003.
 
A constraint graph represents a constraint problem. A constraint defines a
number of variables, and a relation between those variables that must be
satisfied.
 
Note that no values are associated with variables in the constraint graph, i.e.
satisfying constraints is not considered in this module. 
 
The constraint graph is (internally) represented by a directed bi-partite
graph; nodes are variables or constraints and edges run from variables to
constraints. 
 
Variables are just names; any non-mutable hashable object, e.g. a string,
qualifies for a variable. Constraints must be instances of (suclasses of) class
Constraint, and must also be non-mutable, hashable objects. 
 
Changes:
23 Nov 2004 - added Error classes, updated naming and doc conventions (PEP 8, 257)
24 Nov 2004 - added semi-abstract implementation for Constraint.variables()

 
Classes
       
Constraint
geosolver.notify.Notifier
ConstraintGraph

 
class Constraint
    Abstract constraint
 
A constraint defines a relation between variables that should be
satisfied.
 
Subclasses must define proper __init__(), variables() and satisfied()
methods. Constraints must be non-mutable, hashable objects.
 
  Methods defined here:
satisfied(self, mapping)
return true iff constraint is satisfied by given mapping
from variables to values (dictionary)
variables(self)
return a list of variables
 
If an attribute '_variables' has been defined, a new list
with the contents of that attribute will be returned. 
Subclasses may choose to initialise this variable or to 
override this function.

 
class ConstraintGraph(geosolver.notify.Notifier)
    A constraint graph.
 
For more information see module documentation.
 
  Methods defined here:
__init__(self)
Create a new, empty ConstraintGraph
__str__(self)
add_constraint(self, con)
add a constraint
add_variable(self, varname)
add a variable
constraints(self)
return a list of variables
get_constraints_on(self, var)
get a list of all constraints on var
get_constraints_on_all(self, varlist)
get a list of all constraints on all vars in list
get_constraints_on_any(self, varlist)
get a list of all constraints on any of the vars in list
rem_constraint(self, con)
remove a variable
rem_variable(self, varname)
remove a variable
variables(self)
return a list of variables

Methods inherited from geosolver.notify.Notifier:
add_listener(self, listener)
add a listener to the list (and self to listers' list)
rem_listener(self, listener)
remove a listener from the list (and self from listers' list)
send_notify(self, message)
send a message to all listeners

 
Functions
       
test()