Constraint¶
- class jwst.associations.lib.constraint.Constraint(init=None, reduce=None, name=None, reprocess_on_match=False, reprocess_on_fail=False, work_over=1, reprocess_rules=None)[source]¶
Bases:
object
Constraint that is made up of SimpleConstraints
- Parameters
init (object or [object[,...]]) – A single object or list of objects where the objects are as follows. - SimpleConstraint or subclass - Constraint
reduce (function) – A reduction function with signature
x(iterable)
whereiterable
is thecomponents
list. Returns boolean indicating state of the components. Default value isConstraint.all
name (str or None) – Optional name for constraint.
reprocess_on_match (bool) – Reprocess the item if the constraint is satisfied.
reprocess_on_fail (bool) – Reprocess the item if the constraint is not satisfied.
work_over (ProcessList.[BOTH, EXISTING, RULES]) – The condition on which this constraint should operate.
reprocess_rules ([rule[,..]] or None) – List of rules to be applied to. If None, calling function will determine the ruleset. If empty, [], all rules will be used.
- constraints¶
List of
Constraint
orSimpleConstraint
that make this constraint.- Type
[Constraint[,…]]
- matched¶
Result of the last
check_and_set
- Type
- reduce¶
A reduction function with signature
x(iterable)
whereiterable
is thecomponents
list. Returns boolean indicating state of the components. Predefined functions are: -all
: True if all components return True -any
: True if any component returns True- Type
function
Notes
Named constraints can be accessed directly through indexing:
>>> c = Constraint(SimpleConstraint(name='simple', value='a_value')) >>> c['simple'] SimpleConstraint({'sources': <function SimpleConstraint.__init__.<locals>.<lambda> at 0x7f8be05f5730>, 'force_unique': True, 'test': <bound method SimpleConstraint.eq of SimpleConstraint({...})>, 'reprocess_on_match': False, 'reprocess_on_fail': False, 'work_over': 1, 'reprocess_rules': None, 'value': 'a_value', 'name': 'simple', 'matched': False})
Attributes Summary
Return dictionary of constraints with duplicate names
Methods Summary
all
(item, constraints)Return positive only if all results are positive.
any
(item, constraints)Return the first successful constraint.
append
(constraint)Append a new constraint
check_and_set
(item[, work_over])Check and set the constraint
copy
()Copy ourselves
get_all_attr
(attribute)Return the specified attribute
notall
(item, constraints)True if not all of the constraints match
notany
(item, constraints)True if none of the constraints match
Attributes Documentation
- dup_names¶
Return dictionary of constraints with duplicate names
This method is meant to be overridden by classes that need to traverse a list of constraints.
- Returns
dups – Returns a mapping between the duplicated name and all the constraints that define that name.
- Return type
{str: [constraint[,…]][,…]}
Methods Documentation
- check_and_set(item, work_over=1)[source]¶
Check and set the constraint
- Returns
success, reprocess –
Returns 2-tuple of
success : True if check is successful.
List of
ProcessList
.
- Return type
bool, [ProcessList[,…]]
- get_all_attr(attribute: str)[source]¶
Return the specified attribute
This method is meant to be overridden by classes that need to traverse a list of constraints.
- Parameters
attribute (str) – The attribute to retrieve
- Returns
result – The list of values of the attribute in a tuple. If there is no attribute, an empty tuple is returned.
- Return type
[(SimpleConstraint or Constraint, object)[,…]]
- Raises
AttributeError – If the attribute is not found.