Coverage for python/lsst/obs/base/cli/cmd/commands.py : 95%

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
1# This file is part of obs_base.
2#
3# Developed for the LSST Data Management System.
4# This product includes software developed by the LSST Project
5# (http://www.lsst.org).
6# See the COPYRIGHT file at the top-level directory of this distribution
7# for details of code ownership.
8#
9# This program is free software: you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation, either version 3 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program. If not, see <http://www.gnu.org/licenses/>.
22import click
24from lsst.daf.butler.cli.opt import (repo_argument, config_option, config_file_option, run_option,
25 transfer_option)
26from lsst.daf.butler.cli.utils import cli_handle_exception, split_commas, typeStrAcceptsMultiple
27from ..opt import instrument_option
28from ... import script
31@click.command()
32@repo_argument(required=True,
33 help="REPO is the URI or path to the gen3 repository. Will be created if it does not already "
34 "exist")
35@instrument_option(required=True,
36 help="The fully-qualified name of the gen3 Instrument subclass for this camera.")
37@click.option("--gen2root", required=True,
38 help="Root path of the gen 2 repo to be converted.")
39@click.option("--skymap-name",
40 help="Name of the new gen3 skymap (e.g. 'discrete/ci_hsc').")
41@click.option("--skymap-config",
42 help="Path to skymap config file defining the new gen3 skymap.")
43@click.option("--calibs",
44 help="Path to the gen 2 calibration repo. It can be absolute or relative to gen2root.")
45@click.option("--reruns", multiple=True, callback=split_commas, metavar=typeStrAcceptsMultiple,
46 help="List of gen 2 reruns to convert.")
47@transfer_option(help="Mode to use to transfer files into the new repository.")
48@config_file_option(help="Path to a `ConvertRepoConfig` override to be included after the Instrument config "
49 "overrides are applied.")
50def convert(*args, **kwargs):
51 """Convert a Butler gen 2 repository into a gen 3 repository."""
52 cli_handle_exception(script.convert, *args, **kwargs)
55@click.command()
56@repo_argument(required=True)
57@config_file_option(help="Path to a pex_config override to be included after the Instrument config overrides "
58 "are applied.")
59@click.option("--collections",
60 help="The collections to be searched (in order) when reading datasets.",
61 multiple=True,
62 callback=split_commas,
63 metavar=typeStrAcceptsMultiple)
64@instrument_option(required=True)
65def define_visits(*args, **kwargs):
66 cli_handle_exception(script.defineVisits, *args, **kwargs)
69@click.command()
70@repo_argument(required=True)
71@config_option()
72@config_file_option()
73@run_option(required=True)
74@click.option("-d", "--dir", "directory",
75 help="The path to the directory containing the raws to ingest.")
76@click.option("-f", "--file", help="The name of a file containing raws to ingest.")
77@transfer_option()
78@click.option("--ingest-task", default="lsst.obs.base.RawIngestTask", help="The fully qualified class name "
79 "of the ingest task to use.")
80def ingest_raws(*args, **kwargs):
81 cli_handle_exception(script.ingestRaws, *args, **kwargs)
84@click.command()
85@repo_argument(required=True)
86@instrument_option(required=True, help="The fully-qualified name of an Instrument subclass.")
87def register_instrument(*args, **kwargs):
88 """Add an instrument to the data repository.
89 """
90 cli_handle_exception(script.registerInstrument, *args, **kwargs)
93@click.command()
94@repo_argument(required=True)
95@instrument_option(required=True)
96@run_option(required=True)
97def write_curated_calibrations(*args, **kwargs):
98 """Add an instrument's curated calibrations to the data repository.
99 """
100 cli_handle_exception(script.writeCuratedCalibrations, *args, **kwargs)