ThresholdSpecification¶
-
class
lsst.verify.ThresholdSpecification(name, threshold, operator_str, **kwargs)¶ Bases:
lsst.verify.SpecificationA threshold-type specification, associated with a
Metric, that defines a binary comparison against a measurement.Parameters: - name :
str Name of the specification for a metric. LPM-17, for example, uses
'design','minimum'and'stretch'terminology.- quantity :
astropy.units.Quantity The specification threshold level.
- operator_str :
str The threshold’s binary comparison operator. The operator is oriented so that
measurement {{ operator }} threshold quantityis the specification test. Can be one of:'<','<=','>','>=','==', or'!='.- metadata_query :
dict, optional Dictionary of key-value terms that the measurement’s metadata must have for this specification to apply.
- tags : sequence of
str, optional Sequence of tags that group this specification with others.
- kwargs :
dict Keyword arguments passed directly to the
lsst.validate.base.Specificationconstructor.
Raises: Attributes Summary
datumRepresentation of this ThresholdSpecification’s threshold as aDatum.jsondictthat can be serialized as semantic JSON, compatible with the SQUASH metric service.metric_nameName of the metric this specification corresponds to ( lsst.verify.Name).nameSpecification name ( lsst.verify.Name).operatorBinary comparision operator that tests success of a measurement fulfilling a specification of this metric. operator_strThreshold comparision operator (‘str’). tagsTag labels ( setofstr).thresholdThe specification threshold level ( astropy.units.Quantity).typeSpecification type ( str).Methods Summary
check(measurement)Check if a measurement passes this specification. convert_operator_str(op_str)Convert a string representing a binary comparison operator to the operator function itself. deserialize([name, threshold, metric, package])Deserialize from keys in a specification YAML document or a JSON serialization into a ThresholdSpecificationinstance.jsonify_dict(d)Recursively build JSON-renderable objects on all values in a dict. query_metadata(metadata[, arg_driven])Query a Job’s metadata to determine if this specification applies. write_json(filepath)Write JSON to a file. Attributes Documentation
-
datum¶ Representation of this
ThresholdSpecification’s threshold as aDatum.
-
metric_name¶ Name of the metric this specification corresponds to (
lsst.verify.Name).
-
name¶ Specification name (
lsst.verify.Name).
-
operator¶ Binary comparision operator that tests success of a measurement fulfilling a specification of this metric.
Measured value is on left side of comparison and specification level is on right side.
-
operator_str¶ Threshold comparision operator (‘str’).
A measurement passes the specification if:
measurement {{ operator }} threshold == True
The operator string is a standard Python binary comparison token, such as:
'<','>','<=','>=','=='or'!='.
-
threshold= None¶ The specification threshold level (
astropy.units.Quantity).
Methods Documentation
-
check(measurement)¶ Check if a measurement passes this specification.
Parameters: - measurement :
astropy.units.Quantity The measurement value. The measurement
Quantitymust have units compatible withthreshold.
Returns: Raises: - astropy.units.UnitError
Raised if the measurement cannot be compared to the threshold. For example, if the measurement is not an
astropy.units.Quantityor if the units are not compatible.
- measurement :
-
static
convert_operator_str(op_str)¶ Convert a string representing a binary comparison operator to the operator function itself.
Operators are oriented so that the measurement is on the left-hand side, and specification threshold on the right hand side.
The following operators are permitted:
op_strFunction >=operator.ge>operator.gt<operator.lt<=operator.le==operator.eq!=operator.neParameters: - op_str :
str A string representing a binary operator.
Returns: - op_func : obj
An operator function from the
operatorstandard library module.
Raises: - ValueError
Raised if
op_stris not a supported binary comparison operator.
- op_str :
-
classmethod
deserialize(name=None, threshold=None, metric=None, package=None, **kwargs)¶ Deserialize from keys in a specification YAML document or a JSON serialization into a
ThresholdSpecificationinstance.Parameters: - name :
strorlsst.validate.base.Name Specification name, either as a string or
Name.- threshold :
dict A
dictwith fields:'value': threshold value (floatorint).'unit': threshold unit, as anastropy.units.Unit- compatiblestr.'operator': a binary comparison operator, described in the class parameters documentation (str).
- metric :
strorlsst.validate.base.Name, optional Name of the fully-qualified name of the metric the specification corresponds to. This parameter is optional if
nameis already fully-qualified.- package :
strorlsst.validate.base.Name, optional Name of the package the specification corresponds to. This parameter is optional if
nameormetricare already fully-qualified.- kwargs :
dict Keyword arguments passed directly to the
lsst.validate.base.Specificationconstructor.
Returns: - specification :
ThresholdSpecification A specification instance.
- name :
-
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 :
-
query_metadata(metadata, arg_driven=False)¶ Query a Job’s metadata to determine if this specification applies.
Parameters: - metadata :
lsst.verify.Metadataordict-type Metadata mapping. Typically this is the
lsst.verify.Job.metaattribute.- 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. This behavior is appropriate for finding if a specification applies to a Job given metadata.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. This behavior is appropriate for discovering specifications.
Returns: See also
- metadata :
- name :