Constraint¶
- class jwst.associations.lib.constraint.Constraint(init=None, reduce=None, name=None, reprocess_on_match=False, reprocess_on_fail=False, work_over=ListCategory.BOTH, 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 (ListCategory.[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
Return identifyer for the constraint
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=ListCategory.BOTH)[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.