MetadataQuery¶
- class lsst.verify.MetadataQuery(terms=None)¶
Bases:
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.
- terms
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
A JSON-serializable dict.
Term mapping (
dict
).Methods Summary
__call__
(metadata[, arg_driven])Determine if a metadata set matches the query terms.
jsonify_dict
(d)Recursively build JSON-renderable objects on all values in a dict.
write_json
(filepath)Write JSON to a file.
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.
- metadata
- Returns:
- static jsonify_dict(d)¶
Recursively build JSON-renderable objects on all values in a dict.
- Parameters:
- d
dict
Dictionary to convert into a JSON-serializable object. Values are recursively JSON-ified.
- d
- Returns:
- json_dict
dict
Dictionary that can be serialized to JSON.
- json_dict
Examples
Subclasses can use this method to prepare output in their
json
-method implementation. For example:def json(self): return JsonSerializationMixin.jsonify_dict({ 'value': self.value, })