AssociationRegistry
- class jwst.associations.AssociationRegistry(definition_files=None, include_default=True, global_constraints=None, name=None, include_bases=False)[source]
Bases:
dict
The available association rules to match against.
Notes
The general workflow is as follows:
- Create the registry
>>> from jwst.associations.registry import AssociationRegistry >>> registry = AssociationRegistry()
- Create associations from an item
>>> associations, reprocess = registry.match(item)
- Finalize the associations
>>> final_asns = registry.callback.reduce("finalize", associations)
In practice, this is one step in a larger loop over all items to be associated. This does not account for adding items to already existing associations. See
generate()
for more information.Initialize a new registry.
- Parameters:
definition_files ([str,] or None) – The files to find the association definitions in.
include_default (bool) – True to include the default definitions.
global_constraints (Constraint or None) – Constraints to be added to each rule.
name (str or None) – An identifying string, used to prefix rule names.
include_bases (bool) – If True, include base classes not considered rules.
Attributes Summary
Generate set of rules within the registry.
Methods Summary
add_rule
(name, obj[, global_constraints])Add object as rule to registry.
load
(serialized[, fmt, validate, first])Load a previously serialized association.
match
(item[, version_id, allow, ignore])See if item belongs to any of the associations defined.
populate
(module[, global_constraints, ...])Parse out all rules and callbacks in a module and add them to the registry.
validate
(association)Validate a given association.
Attributes Documentation
Methods Documentation
- load(serialized, fmt=None, validate=True, first=True, **kwargs)[source]
Load a previously serialized association.
- Parameters:
serialized (object) – The serialized form of the association.
fmt (str or None) – The format to force. If None, try all available.
validate (bool) – Validate against the class’s defined schema, if any.
first (bool) – A serialization potentially matches many rules. Only return the first successful load.
**kwargs (dict) – Other arguments to pass to the
load
method.
- Returns:
The Association object, or the list of association objects.
- Return type:
association or [association, …]
- Raises:
AssociationError – Cannot create or validate the association.
- match(item, version_id=None, allow=None, ignore=None)[source]
See if item belongs to any of the associations defined.
- Parameters:
item (dict) – An item, like from a Pool, to find associations for.
version_id (str) – If specified, a string appended to association names. If None, nothing is used.
allow ([type(Association), ...]) – List of rules to allow to be matched. If None, all available rules will be used.
ignore (list) – A list of associations to ignore when looking for a match. Intended to ensure that already created associations are not re-created.
- Returns:
associations ([association,…]) – List of associations item belongs to, empty if none match.
reprocess_list ([AssociationReprocess, …]) – List of reprocess events.
- populate(module, global_constraints=None, include_bases=None)[source]
Parse out all rules and callbacks in a module and add them to the registry.
- Parameters:
module (module) – The module, and all submodules, to be parsed.
- validate(association)[source]
Validate a given association.
- Parameters:
association (association-like) – The data to validate.
- Returns:
rules – List of rules that validated.
- Return type:
- Raises:
AssociationNotValidError – Association did not validate.