Coverage for python/lsst/verify/bin/inspectjob.py : 14%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# This file is part of ap_verify. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (https://www.lsst.org). # See the COPYRIGHT file at the top-level directory of this distribution # for details of code ownership. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>.
This script takes as arguments one or more Job .json files, and prints the top-level metadata and a summary of any measurements. It does not print metrics that don't have measurements (there are far too many) or specifications (which are not helpful for testing measurement code). """
"""Test whether a job-level metadata key is really measurement metadata.
Parameters ---------- key : `str` The metadata key to test. metrics : iterable of `lsst.verify.Name` or of `str` The metrics recorded in the job.
Returns ------- result : `bool` `True` if ``key`` represents measurement metadata, `False` if it represents purely job-level metadata. """ for metric in metrics: if str(metric) in key: return True return False
"""Remove a prefix from a key, if it's present.
Parameters ---------- key : `str` The key to simplify. prefix : `str` The prefix to remove from ``key``.
Returns ------- simplifiedKey : `str` ``key`` with any initial ``prefix`` removed """ if key.startswith(prefix): return key.replace(prefix, "", 1) else: return key
"""Present the measurements in a Job object.
The measurements and any metadata are printed to standard output.
Parameters ---------- job : `lsst.verify.Job` The Job to examine. """ # Leave enough space for output so that all '=' characters are aligned max_metric_length = max([len(str(metric)) for metric in job.measurements])
print("Common metadata:") for key, value in job.meta.items(): if _is_measurement_metadata(key, job.measurements.keys()): continue print("%*s = %s" % (max_metric_length, key, value))
print("\nMeasurements:") for metric, measurement in job.measurements.items(): pretty_quantity = measurement.quantity.round(4) if measurement.notes: prefix = str(measurement.metric_name) + "." # Raw representation of measurement.notes hard to read simple_notes = {_simplify_key(key, prefix): value for key, value in measurement.notes.items()} print("%*s = %10s (%s)" % (max_metric_length, metric, pretty_quantity, simple_notes)) else: print("%*s = %10s" % (max_metric_length, metric, pretty_quantity))
"""Present all Job files.
Parameters ---------- filenames : `list` of `str` The Job files to open. Must be in JSON format. """ for filename in filenames: if len(filenames) > 1: print("\n%s:" % filename) with open(filename) as f: job = Job.deserialize(**json.load(f)) inspect_job(job) |