CollectionQuery¶
-
class
lsst.daf.butler.registry.wildcards.CollectionQuery(search: Union[lsst.daf.butler.registry.wildcards.CollectionSearch, ellipsis], patterns: Tuple[re.Pattern, ...])¶ Bases:
objectAn unordered query for collections and dataset type restrictions.
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: - search :
CollectionSearchor An object representing an ordered search for explicitly-named collections (to be interpreted here as unordered), or the special value
indicating all collections.must be accompanied bypatterns=None.- patterns :
tupleofre.Pattern Regular expression patterns to match against collection names.
Notes
A
CollectionQueryis used to find all matching datasets in any number of collections, or to find collections themselves.CollectionQueryis expected to be rarely used outside ofRegistry(which uses it to back several of its “query” methods that take general expressions for collections), but it may occassionally be useful outsideRegistryas a way to preprocess expressions that contain single-pass iterators into a form that can be used to call thoseRegistrymethods multiple times.Attributes Summary
anyA special CollectionQueryinstance that matches any collection.Methods Summary
fromExpression(expression)Process a general expression to construct a CollectionQueryinstance.iter(manager, *, datasetType, …)Iterate over collection records that match this instance and the given criteria, in an arbitrary order. iterPairs(manager, *, datasetType, …)Like iter, but yield pairs ofCollectionRecord,DatasetTypeRestrictioninstead of just the former.Attributes Documentation
-
any= <lsst.daf.butler.registry.wildcards.CollectionQuery object>¶ A special
CollectionQueryinstance that matches any collection.This instance should be preferred instead of constructing a new one with
..., when possible, but it should not be assumed to be the only such instance.
Methods Documentation
-
classmethod
fromExpression(expression: Any) → lsst.daf.butler.registry.wildcards.CollectionQuery¶ Process a general expression to construct a
CollectionQueryinstance.Parameters: - expression
- May be:
- a
strcollection name; - a two-element
tuplecontaining astrand any expression accepted byDatasetTypeRestriction.fromExpression; - an
re.Patterninstance to match (withre.Pattern.fullmatch) against collection names; - any non-mapping iterable containing any of the above;
- a mapping from
strto any expression accepted byDatasetTypeRestriction. - a
CollectionSearchinstance; - another
CollectionQueryinstance (passed through unchanged).
- a
Multiple consecutive entries for the same collection with different restrictions will be merged. Non-consecutive entries will not, because that actually represents a different search path.
Returns: - collections :
CollectionQuery A
CollectionQueryinstance.
-
iter(manager: CollectionManager, *, datasetType: Optional[DatasetType] = None, collectionType: Optional[CollectionType] = None, flattenChains: bool = True, includeChains: Optional[bool] = None) → Iterator[CollectionRecord]¶ Iterate over collection records that match this instance and the given criteria, in an arbitrary order.
This method is primarily intended for internal use by
Registry; other callers should generally preferRegistry.queryDatasetsor otherRegistryquery methods.Parameters: - manager :
CollectionManager Object responsible for managing the collection tables in a
Registry.- datasetType :
DatasetType, optional If given, only yield collections whose dataset type restrictions include this dataset type.
- collectionType :
CollectionType, optional If given, only yield collections of this type.
- 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 :
-
iterPairs(manager: CollectionManager, *, datasetType: Optional[DatasetType] = None, collectionType: Optional[CollectionType] = None, flattenChains: bool = True, includeChains: Optional[bool] = None) → Iterator[Tuple[CollectionRecord, DatasetTypeRestriction]]¶ Like
iter, but yield pairs ofCollectionRecord,DatasetTypeRestrictioninstead of just the former.See
iterfor all parameter descriptions.Yields: - record :
CollectionRecord Matching collection records.
- restriction :
DatasetTypeRestriction The given dataset type restriction.
- record :
- search :