lsst.verify#

lsst.verify is a framework for packages that measure software and data quality metrics. A metric can be any measurable scalar quantity; some examples are in the LSST Science Requirements Document (:lpm:`17`), though packages can also define ad hoc metrics. Measurements made through lsst.verify can be uploaded to LSST’s SQUASH monitoring dashboard to help you see how code development affects performance.

Using lsst.verify#

Contributing#

lsst.verify is developed at lsst/verify. You can find Jira issues for this module under the verify component.

Task reference#

Pipeline tasks#

Tasks#

Script reference#

Python API reference#

lsst.verify Package#

Functions#

output_quantities(package_name, quantities)

Output measurements, as astropy.units.Quantity objects, from a pipeline task execution to a lsst.verify-formatted JSON file.

Classes#

Blob(name, **datums)

Blob is a flexible container of data, as lsst.verify.Datum s, that are serializable to JSON.

BlobSet([blobs])

A collection of Blobs.

Datum([quantity, unit, label, description])

A value annotated with units, a plot label and description.

Job([measurements, metrics, specs, meta])

Container for Measurements, Blob s, and Metadata associated with a pipeline run.

Measurement(metric[, quantity, blobs, ...])

A measurement of a single Metric.

MeasurementNotes(metric_name)

Container for annotations (notes) associated with a single lsst.verify.Measurement.

MeasurementSet([measurements])

A collection of Measurements of Metrics.

Metadata(measurement_set[, data])

Container for verification framework job metadata.

MetadataQuery([terms])

Query of lsst.verify.Job.meta metadata.

Metric(name, description, unit[, tags, ...])

Container for the definition of a metric.

MetricSet([metrics])

A collection of Metrics.

Name([package, metric, spec])

Semantic name of a package, Metric or Specification in the lsst.verify framework.

Specification(name, **kwargs)

Specification base class.

SpecificationResolutionError

Error resolving a specification document's stated inheritance.

SpecificationSet([specifications, partials])

A collection of Specifications.

ThresholdSpecification(name, threshold, ...)

A threshold-type specification, associated with a Metric, that defines a binary comparison against a measurement.

VerifyError

Base error for verify.

VerifySpecificationError

Error accessing or using requirement specifications.

Class Inheritance Diagram#

Inheritance diagram of lsst.verify.blob.Blob, lsst.verify.blobset.BlobSet, lsst.verify.datum.Datum, lsst.verify.job.Job, lsst.verify.measurement.Measurement, lsst.verify.measurement.MeasurementNotes, lsst.verify.measurementset.MeasurementSet, lsst.verify.jobmetadata.Metadata, lsst.verify.metaquery.MetadataQuery, lsst.verify.metric.Metric, lsst.verify.metricset.MetricSet, lsst.verify.naming.Name, lsst.verify.spec.base.Specification, lsst.verify.errors.SpecificationResolutionError, lsst.verify.specset.SpecificationSet, lsst.verify.spec.threshold.ThresholdSpecification, lsst.verify.errors.VerifyError, lsst.verify.errors.VerifySpecificationError

lsst.verify.bin.dispatchverify Module#

Functions#

build_argparser()

main()

Entrypoint for the dispatch_verify.py command line executable.

insert_lsstsw_metadata(job, config)

Insert metadata for lsstsw-based packages into Job.meta['packages'].

insert_extra_package_metadata(job, config)

Insert metadata for extra packages ('--package-repos') into Job.meta['packages'].

insert_env_metadata(job, env_name, metadata, ...)

Insert environment metadata into the Job.

validate_date_created(date_created)

Ensure date_created is a valid datetime string in UTC.

Classes#

Configuration(args)

Configuration for dispatch_verify.py that reconciles command line and environment variable arguments.

Class Inheritance Diagram#

Inheritance diagram of lsst.verify.bin.dispatchverify.Configuration

lsst.verify.extract_metricvalues Module#

Tools for loading metric values from a butler and printing them, or from two butlers and differencing them.

These functions are used by the print_metricvalues script.

Functions#

load_value(butler[, verbose])

Load all measured non-time/non-memory metrics in the given butler repo.

load_timing(butler[, verbose])

Load all measured timing metrics in the given butler repo.

load_memory(butler[, verbose])

Load all measured memory usage metrics in the given butler repo.

print_metrics(butler, kind, *[, ...])

Print all metrics with measured values in the given repo.

print_diff_metrics(butler1, butler2[, ...])

Load metric values from two repos and print their differences.

load_from_butler(butler, query[, ...])

Parameters butler lsst.daf.butler.Butler Butler created with the appropriate collections, etc. query str Butler dataset query to get the metric names to load. reject_suffix str or iterable, optional String or tuple of strings to not load if they appear at the end of the metric name. verbose bool, optional Print extra information when loading.

lsst.verify.jsonmixin Module#

Classes#

JsonSerializationMixin()

Mixin that provides JSON serialization support to subclasses.

lsst.verify.metadata.eupsmanifest Module#

Classes#

Manifest(manifest_stream)

Iterator over packages in lsstsw's manifest.txt dataset.

lsst.verify.metadata.jenkinsci Module#

Functions#

get_jenkins_env()

Gather metadata entries from LSST DM Jenkins CI environment.

lsst.verify.metadata.lsstsw Module#

Classes#

LsstswRepos(dirname)

lsstsw package version information based on repos.yaml and checked out Git repositories.

lsst.verify.squash Module#

Functions#

get(api_url[, api_endpoint, api_user, ...])

GET request to the SQUASH API.

post(api_url, api_endpoint[, json_doc, ...])

POST a JSON document to SQUASH.

get_endpoint_url(api_url, api_endpoint, **kwargs)

Lookup SQUASH endpoint URL.

reset_endpoint_cache()

Reset the cache used by get_endpoint_url.

get_default_timeout()

Get the default HTTP client timeout setting.

get_default_api_version()

Get the default SQUASH API versioned used by the lsst.verify.squash client functions.

make_accept_header([version])

Make the Accept HTTP header for versioned SQUASH API requests.

lsst.verify.report Module#

Classes#

Report(measurements, specs)

Report tabulating specification pass/fail status for a set of lsst.verify.Measurements.

lsst.verify.tasks Package#

Classes#

AbstractMetadataMetricTask(**kwargs)

A base class for tasks that compute metrics from metadata values.

ApdbMetricConfig(*args, **kw)

A base class for APDB metric task configs.

ApdbMetricConnections(*[, config])

An abstract connections class defining a database input.

ApdbMetricTask(**kwargs)

A base class for tasks that compute metrics from an alert production database.

CpuTimingMetricConfig

alias of TimeMethodMetricConfig

CpuTimingMetricTask(**kwargs)

A Task that computes a CPU time using metadata produced by the lsst.utils.timer.timeMethod decorator.

MemoryMetricConfig

alias of TimeMethodMetricConfig

MemoryMetricTask(**kwargs)

A Task that computes the maximum resident set size using metadata produced by the lsst.utils.timer.timeMethod decorator.

MetadataMetricConfig(*args, **kw)

A base class for metadata metric task configs.

MetadataMetricTask(**kwargs)

A base class for tasks that compute metrics from single metadata objects.

MetricComputationError

This class represents unresolvable errors in computing a metric.

MetricConfig(*args, **kw)

MetricConnections(*[, config])

An abstract connections class defining a metric output.

MetricTask(**kwargs)

A base class for tasks that compute one metric from input datasets.

SingleMetadataMetricConnections(*[, config])

An abstract connections class defining a metadata input.

TimingMetricConfig

alias of TimeMethodMetricConfig

TimingMetricTask(**kwargs)

A Task that computes a wall-clock time using metadata produced by the lsst.utils.timer.timeMethod decorator.

lsst.verify.timer Module#

Functions#

time_this_to_measurement(measurement)

Time the enclosed block and record it as an lsst.verify measurement.