Association

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

Bases: MutableMapping

Association Base Class.

Attributes:
instancedict-like

The instance is the association data structure. See data below

metadict

Information about the association.

datadict

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

schema_filestr

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

Raises:
AssociationError

If an item doesn’t match.

Initialize an Association.

Parameters:
version_idstr or None

Version ID to use in the name of this association. If None, nothing is added.

Attributes Summary

DEFAULT_EVALUATE

Default do not evaluate input values

DEFAULT_FORCE_UNIQUE

Default whether to force constraints to use unique values.

DEFAULT_REQUIRE_CONSTRAINT

Default require that the constraint exists or otherwise can be explicitly checked.

GLOBAL_CONSTRAINT

Global constraints

INVALID_VALUES

Attribute values that indicate the attribute is not specified.

asn_name

Suggest filename for the association.

asn_rule

Name of the rule.

ioregistry

The association IO registry

is_valid

Check if association is valid.

registry

Registry this rule has been placed in.

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 this association.

create(item[, version_id])

Create association if item belongs.

dump([fmt])

Serialize the association.

finalize()

Finalize association.

is_item_member(item)

Check if item is already a member of this association.

items()

Provide items of data dictionary.

keys()

Provide keys of data dictionary.

load(serialized[, fmt, validate])

Marshal a previously serialized association.

match_constraint(item, conditions)

Match against constraints.

rule_name()

Return rule name.

validate(asn)

Validate an association against this rule.

values()

Provide values of data dictionary.

Attributes Documentation

DEFAULT_EVALUATE = False

Default do not evaluate input values

DEFAULT_FORCE_UNIQUE = False

Default whether to force constraints to use unique values.

DEFAULT_REQUIRE_CONSTRAINT = True

Default require that the constraint exists or otherwise can be explicitly checked.

GLOBAL_CONSTRAINT = None

Global constraints

INVALID_VALUES: tuple | None = None

Attribute values that indicate the attribute is not specified.

asn_name

Suggest filename for the association.

Returns:
str

Default asn name of ‘unnamed_association’.

asn_rule

Name of the rule.

Returns:
str

The asn rule name.

ioregistry: KeyValueRegistry = {'json': <class 'jwst.associations.association_io.json'>, 'yaml': <class 'jwst.associations.association_io.yaml'>}

The association IO registry

is_valid

Check if association is valid.

Returns:
bool

True if association is valid.

registry = None

Registry this rule has been placed in.

Methods Documentation

add(item, check_constraints=True)[source]

Add the item to the association.

Parameters:
itemdict

The item to add.

check_constraintsbool

If True, see if the item should belong to this association. If False, just add it.

Returns:
(match, reprocess_list)
2-tuple consisting of:
  • bool : True if match

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

check_and_set_constraints(item)[source]

Check whether the given dictionaries match parameters for this association.

Parameters:
itemdict

The parameters to check/set for this association. This can be a list of dictionaries.

Returns:
(match, reprocess)
2-tuple consisting of:
  • bool : Did constraint match?

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

classmethod create(item, version_id=None)[source]

Create association if item belongs.

Parameters:
itemdict

The item to initialize the association with.

version_idstr or None

Version ID to use in the name of this association. If None, nothing is added.

Returns:
(association, reprocess_list)
2-tuple consisting of:
  • association or None: The association or, if the item does not match this rule, None

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

dump(fmt=None, **kwargs)[source]

Serialize the association.

Parameters:
fmtstr

The format to use to dump the association into.

**kwargsdict

List of arguments to pass to the registered routines for the current association type.

Returns:
(name, serialized):

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

Raises:
AssociationError

If the operation cannot be done

AssociationNotValidError

If the given association does not validate.

finalize()[source]

Finalize association.

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

Returns:
associations[association[, …]] or None

List of fully-qualified associations that this association represents. None if a complete association cannot be produced.

is_item_member(item)[source]

Check if item is already a member of this association.

Parameters:
itemdict

The item to add.

Returns:
is_item_memberbool

True if item is a member.

items()[source]

Provide items of data dictionary.

Returns:
dict_items

The items of the data dictionary.

keys()[source]

Provide keys of data dictionary.

Returns:
dict_keys

The keys of the data dictionary.

classmethod load(serialized, fmt=None, validate=True, **kwargs)[source]

Marshal a previously serialized association.

Parameters:
serializedobject

The serialized form of the association.

fmtstr or None

The format to force. If None, try all available.

validatebool

Validate against the class’ defined schema, if any.

**kwargsdict

Other arguments to pass to the load method

Returns:
associationAssociation

The association.

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, conditions)[source]

Match against constraints.

Parameters:
itemdict

The item to retrieve the values from

conditionsdict

The conditions structure

Returns:
(matches, reprocess_list)
2-tuple consisting of:
  • bool : True if the all constraints are satisfied

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

classmethod rule_name()[source]

Return rule name.

Returns:
str

The name of the rule class.

classmethod validate(asn)[source]

Validate an association against this rule.

Parameters:
asnAssociation or association-like

The association structure to examine

Returns:
validbool

True if valid. Otherwise the AssociationNotValidError is raised

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()[source]

Provide values of data dictionary.

Returns:
dict_values

The values of the data dictionary.