MetadataQuery¶
-
class
lsst.verify.
MetadataQuery
(terms=None)¶ Bases:
lsst.verify.jsonmixin.JsonSerializationMixin
Query of
lsst.verify.Job.meta
metadata.Parameters: - terms :
dict
, optional A mapping of key-value query terms. In the default query mode, the user-provided job metadata must have all these terms, and matching values, to pass the query.
Examples
A MetadataQuery returns
True
if all key-value terms found inMetadataQuery.terms
are equal to key-value metadata items.>>> metadata = {'filter': 'r', 'camera': 'MegaCam'}
An example of a query with a conflicting term:
>>> query1 = MetadataQuery({'filter': 'r', 'camera': 'SDSS'}) >>> query1(metadata) False
A query with matching terms (albeit, a subset of the metadata):
>>> query2 = MetadataQuery({'filter': 'r'}) >>> query2(metadata) True
A query that overconstrains the available metadata:
>>> query3 = MetadataQuery({'filter': 'r', 'camera': 'MegaCam', ... 'photometric': True}) >>> query3(metadata) False
The
arg_driven=True
mode reverses the matching logic so that all terms in the user-provided metadata must be in the MetadataQuery:>>> query3(metadata, arg_driven=True) True >>> query2(metadata, arg_driven=True) False
Attributes Summary
json
A JSON-serializable dict. terms
Term mapping ( dict
).Methods Summary
__call__
(metadata[, arg_driven])Determine if a metadata set matches the query terms. Attributes Documentation
-
json
¶ A JSON-serializable dict.
Keys are metadata keys. Values are the associated metadata values of the query term.
Methods Documentation
-
__call__
(metadata, arg_driven=False)¶ Determine if a metadata set matches the query terms.
Parameters: - metadata :
dict
orlsst.verify.Metadata
Metadata mapping. Typically this is a job’s
lsst.verify.Job.meta
.- arg_driven :
bool
, optional If
False
(default),metadata
matches theMetadataQuery
ifmetadata
has all the terms defined inMetadataQuery
, and those terms match. Ifmetadata
has more terms thanMetadataQuery
, it can still match.If
True
, the orientation of the matching is reversed. Nowmetadata
matches theMetadataQuery
ifMetadataQuery
has all the terms defined inmetadata
and those terms match. IfMetadataQuery
has more terms thanmetadata
, it can still match.
Returns: - metadata :
- terms :