Coverage for python/lsst/pipe/base/cli/cmd/commands.py: 94%
23 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-10 03:25 -0700
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-10 03:25 -0700
1# This file is part of pipe_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 software is dual licensed under the GNU General Public License and also
10# under a 3-clause BSD license. Recipients may choose which of these licenses
11# to use; please see the files gpl-3.0.txt and/or bsd_license.txt,
12# respectively. If you choose the GPL option then the following text applies
13# (but note that there is still no warranty even if you opt for BSD instead):
14#
15# This program is free software: you can redistribute it and/or modify
16# it under the terms of the GNU General Public License as published by
17# the Free Software Foundation, either version 3 of the License, or
18# (at your option) any later version.
19#
20# This program is distributed in the hope that it will be useful,
21# but WITHOUT ANY WARRANTY; without even the implied warranty of
22# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23# GNU General Public License for more details.
24#
25# You should have received a copy of the GNU General Public License
26# along with this program. If not, see <http://www.gnu.org/licenses/>.
28from typing import Any
30import click
31from lsst.daf.butler.cli.opt import (
32 options_file_option,
33 register_dataset_types_option,
34 repo_argument,
35 transfer_dimensions_option,
36)
37from lsst.daf.butler.cli.utils import ButlerCommand
39from ... import script
40from ..opt import instrument_argument, update_output_chain_option
43@click.command(short_help="Add an instrument definition to the repository", cls=ButlerCommand)
44@repo_argument(required=True)
45@instrument_argument(required=True, nargs=-1, help="The fully-qualified name of an Instrument subclass.")
46@click.option("--update", is_flag=True)
47def register_instrument(*args: Any, **kwargs: Any) -> None:
48 """Add an instrument to the data repository."""
49 script.register_instrument(*args, **kwargs)
52@click.command(short_help="Transfer datasets from a graph to a butler.", cls=ButlerCommand)
53@click.argument("graph", required=True)
54@click.argument("dest", required=True)
55@register_dataset_types_option()
56@transfer_dimensions_option(default=False)
57@update_output_chain_option()
58@click.option(
59 "--dry-run", is_flag=True, default=False, help="Run the transfer but do not update the destination butler"
60)
61@options_file_option()
62def transfer_from_graph(**kwargs: Any) -> None:
63 """Transfer datasets from a quantum graph to a destination butler.
65 SOURCE is a URI to the Butler repository containing the RUN dataset.
67 DEST is a URI to the Butler repository that will receive copies of the
68 datasets.
69 """
70 number = script.transfer_from_graph(**kwargs)
71 print(f"Number of datasets transferred: {number}")