MetadataQuery¶
- 
class lsst.verify.MetadataQuery(terms=None)¶
- Bases: - lsst.verify.jsonmixin.JsonSerializationMixin- Query 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. 
 - Examples - A MetadataQuery returns - Trueif all key-value terms found in- MetadataQuery.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 - json- A JSON-serializable dict. - terms- 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 the- MetadataQueryif- metadatahas all the terms defined in- MetadataQuery, and those terms match. If- metadatahas more terms than- MetadataQuery, it can still match.- If - True, the orientation of the matching is reversed. Now- metadatamatches the- MetadataQueryif- MetadataQueryhas all the terms defined in- metadataand those terms match. If- MetadataQueryhas more terms than- metadata, it can still match.
 - Returns: 
- metadata : 
 - 
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. 
 - Returns: - json_dict : dict
- Dictionary that can be serialized to JSON. 
 - 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, }) 
- d : 
 
- terms :