Association

class jwst.associations.Association(version_id=None)[source]

Bases: collections.abc.MutableMapping

Association Base Class

Parameters:version_id (str or None) – Version_Id to use in the name of this association. If None, nothing is added.
Raises:AssociationError – If a item doesn’t match any of the registered associations.
instance

The instance is the association data structure. See data below

Type:dict-like
meta

Information about the association.

Type:dict
data

The association. The format of this data structure is determined by the individual assocations and, if defined, valided against their specified schema.

Type:dict
schema_file

The name of the output schema that an association must adhere to.

Type:str
registry

The registry this association came from.

Type:AssociationRegistry
asn_name

The suggested file name of association

Type:str
asn_rule

The name of the rule

Type:str

Attributes Summary

DEFAULT_EVALUATE
DEFAULT_FORCE_UNIQUE
DEFAULT_REQUIRE_CONSTRAINT
GLOBAL_CONSTRAINT
INVALID_VALUES
asn_name
asn_rule
ioregistry
is_valid Check if association is valid
registry

Methods Summary

add(item[, check_constraints]) Add the item to the association
check_and_set_constraints(item) Check whether the given dictionaries match parameters for for this association
create(item[, version_id]) Create association if item belongs
dump([format]) Serialize the association
finalize() Finalize assocation
is_item_member(item) Check if item is already a member of this association
items()
keys()
load(serialized[, format, validate]) Marshall a previously serialized association
match_constraint(item, constraint, conditions) Generic constraint checking
validate(asn) Validate an association against this rule
values()

Attributes Documentation

DEFAULT_EVALUATE = False
DEFAULT_FORCE_UNIQUE = False
DEFAULT_REQUIRE_CONSTRAINT = True
GLOBAL_CONSTRAINT = None
INVALID_VALUES = None
asn_name
asn_rule
ioregistry = {'json': <class 'jwst.associations.association_io.json'>, 'yaml': <class 'jwst.associations.association_io.yaml'>}
is_valid

Check if association is valid

registry = None

Methods Documentation

add(item, check_constraints=True)[source]

Add the item to the association

Parameters:
  • item (dict) – The item to add.
  • check_constraints (bool) – If True, see if the item should belong to this association. If False, just add it.
Returns:

2-tuple consisting of: - bool: True if match - [ProcessList[, …]]: List of items to process again.

Return type:

(matching_constraint, reprocess_list)

check_and_set_constraints(item)[source]

Check whether the given dictionaries match parameters for for this association

Parameters:item (dict) – The parameters to check/set for this association. This can be a list of dictionaries.
Returns:2-tuple consisting of: - Constraint or False: The successfully matching constraint
or False if not matching.
  • [ProcessItem[, …]]: List of items to process again.
Return type:(match, reprocess)
classmethod create(item, version_id=None)[source]

Create association if item belongs

Parameters:
  • item (dict) – The item to initialize the association with.
  • version_id (str or None) – Version_Id to use in the name of this association. If None, nothing is added.
Returns:

2-tuple consisting of: - association: The association or, if the item does not

this rule, None

  • [ProcessList[, …]]: List of items to process again.

Return type:

(association, reprocess_list)

dump(format='json', **kwargs)[source]

Serialize the association

Parameters:
  • format (str) – The format to use to dump the association into.
  • kwargs (dict) – List of arguments to pass to the registered routines for the current association type.
Returns:

Tuple where the first item is the suggested base name for the file. Second item is the serialization.

Return type:

(name, serialized)

Raises:
finalize()[source]

Finalize assocation

Finalize or close-off this association. Peform validations, modifications, etc. to ensure that the association is complete.

Returns:associations – List of fully-qualified associations that this association represents. None if a complete association cannot be produced.
Return type:[association[, ..]] or None
is_item_member(item)[source]

Check if item is already a member of this association

Parameters:item (dict) – The item to add.
Returns:is_item_member – True if item is a member.
Return type:bool
items() → a set-like object providing a view on D's items[source]
keys() → a set-like object providing a view on D's keys[source]
classmethod load(serialized, format=None, validate=True, **kwargs)[source]

Marshall a previously serialized association

Parameters:
  • serialized (object) – The serialized form of the association.
  • format (str or None) – The format to force. If None, try all available.
  • validate (bool) – Validate against the class’ defined schema, if any.
  • kwargs (dict) – Other arguments to pass to the load method
Returns:

Return type:

The Association object

Raises:

AssociationNotValidError – Cannot create or validate the association.

Notes

The serialized object can be in any format supported by the registered I/O routines. For example, for json and yaml formats, the input can be either a string or a file object containing the string.

match_constraint(item, constraint, conditions)[source]

Generic constraint checking

Parameters:
  • item (dict) – The item to retrieve the values from
  • constraint (str) – The name of the constraint
  • conditions (dict) – The conditions structure
Returns:

2-tuple consisting of: - bool: True if the all constraints are satisfied - [ProcessList[, …]]: List of items to process again.

Return type:

(matches, reprocess_list)

classmethod validate(asn)[source]

Validate an association against this rule

Parameters:asn (Association or association-like) – The association structure to examine
Returns:valid – True if valid. Otherwise the AssociationNotValidError is raised
Return type:bool
Raises:AssociationNotValidError – If there is some reason validation failed.

Notes

The base method checks against the rule class’ schema If the rule class does not define a schema, a warning is issued but the routine will return True.

values() → an object providing a view on D's values[source]