MetadataQuery¶
- class lsst.verify.MetadataQuery(terms=None)¶
Bases:
JsonSerializationMixinQuery of
lsst.verify.Job.metametadata.- 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
Trueif all key-value terms found inMetadataQuery.termsare 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=Truemode 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
dictorlsst.verify.Metadata Metadata mapping. Typically this is a job’s
lsst.verify.Job.meta.- arg_driven
bool, optional If
False(default),metadatamatches theMetadataQueryifmetadatahas all the terms defined inMetadataQuery, and those terms match. Ifmetadatahas more terms thanMetadataQuery, it can still match.If
True, the orientation of the matching is reversed. Nowmetadatamatches theMetadataQueryifMetadataQueryhas all the terms defined inmetadataand those terms match. IfMetadataQueryhas 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, })