MetricSet

class lsst.verify.MetricSet(metrics=None)

Bases: lsst.verify.jsonmixin.JsonSerializationMixin

A collection of Metrics.

Parameters
metricssequence of Metric instances, optional

Metrics to be contained within the MetricSet.

Attributes Summary

json

A JSON-serializable object (list).

Methods Summary

deserialize([metrics])

Deserialize metric JSON objects into a MetricSet instance.

insert(metric)

Insert a Metric into the set.

items()

Iterate over (name, metric) pairs in the set.

jsonify_dict(d)

Recursively build JSON-renderable objects on all values in a dict.

keys()

Get a list of metric names included in the set

load_metrics_package([package_name_or_path, …])

Create a MetricSet from a Verification Framework metrics package.

load_single_package(metrics_yaml_path)

Create a MetricSet from a single YAML file containing metric definitions for a single package.

subset([package, tags])

Create a new MetricSet with metrics belonging to a single package and/or tag.

update(other)

Merge another MetricSet into this one.

write_json(filepath)

Write JSON to a file.

Attributes Documentation

json

A JSON-serializable object (list).

Methods Documentation

classmethod deserialize(metrics=None)

Deserialize metric JSON objects into a MetricSet instance.

Parameters
metricslist

List of metric JSON serializations (typically created by MetricSet.json).

Returns
metric_setMetricSet

MetricSet instance.

insert(metric)

Insert a Metric into the set.

Any pre-existing metric with the same name is replaced

Parameters
metricMetric

A metric.

items()

Iterate over (name, metric) pairs in the set.

Yields
itemtuple

Tuple containing:

static jsonify_dict(d)

Recursively build JSON-renderable objects on all values in a dict.

Parameters
ddict

Dictionary to convert into a JSON-serializable object. Values are recursively JSON-ified.

Returns
json_dictdict

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,
    })
keys()

Get a list of metric names included in the set

Returns
keyslist of Name

List of Names included in the set.

classmethod load_metrics_package(package_name_or_path='verify_metrics', subset=None)

Create a MetricSet from a Verification Framework metrics package.

Parameters
package_name_or_pathstr, optional

Name of an EUPS package that hosts metric and specification definition YAML files or the file path to a metrics package. 'verify_metrics' is the default package, and is where metrics and specifications are defined for most packages.

subsetstr, optional

If set, only metrics for this package are loaded. For example, if subset='validate_drp', only validate_drp metrics are included in the MetricSet. This argument is equivalent to the MetricSet.subset method. Default is None.

Returns
metric_setMetricSet

A MetricSet containing Metric instances.

Notes

EUPS packages that host metrics and specification definitions for the Verification Framework have top-level directories named 'metrics' and 'specs'. The metrics package chosen with the package_name_or_path argument. The default metric package for LSST Science Pipelines is verify_metrics.

To make a MetricSet from a single package’s YAML metric definition file that is not contained in a metrics package, use load_single_package instead.

classmethod load_single_package(metrics_yaml_path)

Create a MetricSet from a single YAML file containing metric definitions for a single package.

Returns
metric_setMetricSet

A MetricSet containing Metric instances found in the YAML file.

Notes

The YAML file’s name, without extension, is taken as the package name for all metrics.

For example, validate_drp.yaml contains metrics that are identified as belonging to the validate_drp package.

subset(package=None, tags=None)

Create a new MetricSet with metrics belonging to a single package and/or tag.

Parameters
packagestr or lsst.verify.Name, optional

Name of the package to subset metrics by. If the package name is 'pkg_a', then metric 'pkg_a.metric_1' would be included in the subset, while 'pkg_b.metric_2' would be excluded.

tagssequence of str, optional

Tags to select metrics by. These tags must be a subset (<=) of the Metric.tags for the metric to be selected.

Returns
metric_subsetMetricSet

Subset of this metric set containing only metrics belonging to the specified package and/or tag.

Notes

If both package and tag are provided then the resulting MetricSet contains the intersection of the package-based and tag-based selections. That is, metrics will belong to package and posess the tag tag.

update(other)

Merge another MetricSet into this one.

Parameters
otherMetricSet

Another MetricSet. Metrics in other that do exist in this set are added to this one. Metrics in other replace metrics of the same name in this one.

write_json(filepath)

Write JSON to a file.

Parameters
filepathstr

Destination file name for JSON output.