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 SimpleConstraint

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) where iterable is the components list. Returns boolean indicating state of the components. Default value is Constraint.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 or SimpleConstaint that make this constraint.

Type

[Constraint[,..]]

matched

Result of the last check_and_set

Type

bool

reduce

A reduction function with signature x(iterable) where iterable is the components 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})

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

notany(item, constraints)

True if none of the constraints match

Methods Documentation

static all(item, constraints)[source]

Return positive only if all results are positive.

static any(item, constraints)[source]

Return the first successful constraint.

append(constraint)[source]

Append a new constraint

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[,..]]

copy()[source]

Copy ourselves

static notany(item, constraints)[source]

True if none of the constraints match