Coverage for python/lsst/daf/butler/cli/cmd/commands.py : 87%

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 daf_butler.
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 ..opt import (config_file_option, dataset_type_option, directory_argument, repo_argument, run_option,
25 transfer_option)
26from ..utils import split_commas, cli_handle_exception, typeStrAcceptsMultiple
27from ...script import butlerImport, createRepo, configDump, configValidate
30# The conversion from the import command name to the butler_import function
31# name for subcommand lookup is implemented in the cli/butler.py, in
32# funcNameToCmdName and cmdNameToFuncName. If name changes are made here they
33# must be reflected in that location. If this becomes a common pattern a better
34# mechanism should be implemented.
35@click.command("import")
36@repo_argument(required=True, help=repo_argument.will_create_repo)
37@directory_argument(required=True)
38@transfer_option()
39@run_option(required=True)
40@click.option("--export-file",
41 help="Name for the file that contains database information associated with the exported "
42 "datasets. If this is not an absolute path, does not exist in the current working "
43 "directory, and --dir is provided, it is assumed to be in that directory. Defaults "
44 "to \"export.yaml\".",
45 type=click.File('r'))
46def butler_import(*args, **kwargs):
47 """Import data into a butler repository."""
48 cli_handle_exception(butlerImport, *args, **kwargs)
51@click.command()
52@repo_argument(help=repo_argument.will_create_repo)
53@config_file_option(help="Path to an existing YAML config file to apply (on top of defaults).")
54@click.option("--standalone", is_flag=True, help="Include all defaults in the config file in the repo, "
55 "insulating the repo from changes in package defaults.")
56@click.option("--override", "-o", is_flag=True, help="Allow values in the supplied config to override any "
57 "repo settings.")
58@click.option("--outfile", "-f", default=None, type=str, help="Name of output file to receive repository "
59 "configuration. Default is to write butler.yaml into the specified repo.")
60def create(*args, **kwargs):
61 """Create an empty Gen3 Butler repository."""
62 cli_handle_exception(createRepo, *args, **kwargs)
65@click.command()
66@repo_argument(required=True)
67@click.option("--subset", "-s", type=str,
68 help="Subset of a configuration to report. This can be any key in the hierarchy such as "
69 "'.datastore.root' where the leading '.' specified the delimiter for the hierarchy.")
70@click.option("--searchpath", "-p", type=str, multiple=True, callback=split_commas,
71 metavar=typeStrAcceptsMultiple,
72 help="Additional search paths to use for configuration overrides")
73@click.option("--file", "outfile", type=click.File("w"), default="-",
74 help="Print the (possibly-expanded) configuration for a repository to a file, or to stdout "
75 "by default.")
76def config_dump(*args, **kwargs):
77 """Dump either a subset or full Butler configuration to standard output."""
78 cli_handle_exception(configDump, *args, **kwargs)
81@click.command()
82@repo_argument(required=True)
83@click.option("--quiet", "-q", is_flag=True, help="Do not report individual failures.")
84@dataset_type_option(help="Specific DatasetType(s) to validate.")
85@click.option("--ignore", "-i", type=str, multiple=True, callback=split_commas,
86 metavar=typeStrAcceptsMultiple,
87 help="DatasetType(s) to ignore for validation.")
88def config_validate(*args, **kwargs):
89 """Validate the configuration files for a Gen3 Butler repository."""
90 cli_handle_exception(configValidate, *args, **kwargs)