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 do not evaluate input values
Default whether to force constraints to use unique values.
Default require that the constraint exists or otherwise can be explicitly checked.
Global constraints
Attribute values that indicate the attribute is not specified.
Suggest filename for the association.
Name of the rule.
The association IO registry
Check if association is valid.
Registry this rule has been placed in.
Methods Summary
add
(item[, check_constraints])Add the item to the association.
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.
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
- 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.
- 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, forjson
andyaml
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 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.