CollectionSearch¶
-
class
lsst.daf.butler.CollectionSearch¶ Bases:
pydantic.main.BaseModel,collections.abc.Sequence,typing.GenericAn ordered search path of collections.
The
fromExpressionmethod should almost always be used to construct instances, as the regular constructor performs no checking of inputs (and that can lead to confusing error messages downstream).Parameters: Notes
A
CollectionSearchis used to find a single dataset (or set of datasets with different dataset types or data IDs) according to its dataset type and data ID, giving preference to collections in the order in which they are specified. ACollectionQuerycan be constructed from a broader range of expressions but does not order the collections to be searched.CollectionSearchis an immutable sequence ofstrcollection names.A
CollectionSearchinstance constructed properly (e.g. viafromExpression) is a unique representation of a particular search path; it is exactly the same internally and compares as equal to anyCollectionSearchconstructed from an equivalent expression, regardless of how different the original expressions appear.Attributes Summary
copyDuplicate a model, optionally choose which fields to include, exclude and change. dictGenerate a dictionary representation of the model, optionally specifying which fields to include or exclude. jsonGenerate a JSON representation of the model, includeandexcludearguments as perdict().Methods Summary
construct(_fields_set, **values)Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. count(value)explicitNames()Iterate over collection names that were specified explicitly. fromExpression(expression)Process a general expression to construct a CollectionSearchinstance.from_orm(obj)index(value, [start, [stop]])Raises ValueError if the value is not present. iter(manager, *, datasetType, …)Iterate over collection records that match this instance and the given criteria, in order. parse_file(path, pathlib.Path], *, …)parse_obj(obj)parse_raw(b, bytes], *, content_type, …)schema(by_alias, ref_template)schema_json(*, by_alias, ref_template, …)update_forward_refs(**localns)Try to update ForwardRefs on fields based on this Model, globalns and localns. validate(value)Attributes Documentation
-
copy¶ Duplicate a model, optionally choose which fields to include, exclude and change.
Parameters: - include – fields to include in new model
- exclude – fields to exclude from new model, as with values this takes precedence over include
- update – values to change/add in the new model. Note: the data is not validated before creating the new model: you should trust this data
- deep – set to
Trueto make a deep copy of the model
Returns: new model instance
-
dict¶ Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
-
json¶ Generate a JSON representation of the model,
includeandexcludearguments as perdict().encoderis an optional function to supply asdefaultto json.dumps(), other arguments as perjson.dumps().
Methods Documentation
-
classmethod
construct(_fields_set: Optional[SetStr] = None, **values) → Model¶ Creates a new model setting __dict__ and __fields_set__ from trusted or pre-validated data. Default values are respected, but no other validation is performed. Behaves as if
Config.extra = 'allow'was set since it adds all passed values
-
count(value) → integer -- return number of occurrences of value¶
-
explicitNames() → Iterator[str]¶ Iterate over collection names that were specified explicitly.
-
classmethod
fromExpression(expression: Any) → lsst.daf.butler.registry.wildcards.CollectionSearch¶ Process a general expression to construct a
CollectionSearchinstance.Parameters: - expression
- May be:
- a
strcollection name; - an iterable of
strcollection names; - another
CollectionSearchinstance (passed through unchanged).
- a
Duplicate entries will be removed (preserving the first appearance of each collection name).
- Returns
- ——-
- collections :
CollectionSearch A
CollectionSearchinstance.
-
classmethod
from_orm(obj: Any) → Model¶
-
index(value[, start[, stop]]) → integer -- return first index of value.¶ Raises ValueError if the value is not present.
Supporting start and stop arguments is optional, but recommended.
-
iter(manager: CollectionManager, *, datasetType: Optional[DatasetType] = None, collectionTypes: AbstractSet[CollectionType] = frozenset({<CollectionType.RUN: 1>, <CollectionType.TAGGED: 2>, <CollectionType.CHAINED: 3>, <CollectionType.CALIBRATION: 4>}), done: Optional[Set[str]] = None, flattenChains: bool = True, includeChains: Optional[bool] = None) → Iterator[CollectionRecord]¶ Iterate over collection records that match this instance and the given criteria, in order.
This method is primarily intended for internal use by
Registry; other callers should generally preferRegistry.findDatasetsor otherRegistryquery methods.Parameters: - manager :
CollectionManager Object responsible for managing the collection tables in a
Registry.- collectionTypes :
AbstractSet[CollectionType], optional If provided, only yield collections of these types.
- done :
set, optional A
setcontaining the names of all collections already yielded; any collections whose names are already present in this set will not be yielded again, and those yielded will be added to it while iterating. If not provided, an emptysetwill be created and used internally to avoid duplicates.- flattenChains :
bool, optional If
True(default) recursively yield the child collections ofCHAINEDcollections.- includeChains :
bool, optional If
False, return records forCHAINEDcollections themselves. The default is the opposite offlattenChains: either return records for CHAINED collections or their children, but not both.
Yields: - record :
CollectionRecord Matching collection records.
- manager :
-
classmethod
parse_file(path: Union[str, pathlib.Path], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) → Model¶
-
classmethod
parse_obj(obj: Any) → Model¶
-
classmethod
parse_raw(b: Union[str, bytes], *, content_type: unicode = None, encoding: unicode = 'utf8', proto: pydantic.parse.Protocol = None, allow_pickle: bool = False) → Model¶
-
classmethod
schema(by_alias: bool = True, ref_template: unicode = '#/definitions/{model}') → DictStrAny¶
-
classmethod
schema_json(*, by_alias: bool = True, ref_template: unicode = '#/definitions/{model}', **dumps_kwargs) → unicode¶
-
classmethod
update_forward_refs(**localns) → None¶ Try to update ForwardRefs on fields based on this Model, globalns and localns.
-
classmethod
validate(value: Any) → Model¶
-