Coverage for python/lsst/daf/butler/cli/cmd/config_dump.py : 40%

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 ... import ButlerConfig
25from ..opt import repo_argument
28@click.command()
29@repo_argument(required=True)
30@click.option("--subset", "-s", type=str,
31 help="Subset of a configuration to report. This can be any key in the hierarchy such as "
32 "'.datastore.root' where the leading '.' specified the delimiter for the hierarchy.")
33@click.option("--searchpath", "-p", type=str, multiple=True,
34 help="Additional search paths to use for configuration overrides")
35@click.option("--file", "outfile", type=click.File("w"), default="-",
36 help="Print the (possibly-expanded) configuration for a repository to a file, or to stdout "
37 "by default.")
38def config_dump(repo, subset, searchpath, outfile):
39 """Dump either a subset or full Butler configuration to standard output."""
40 config = ButlerConfig(repo, searchPaths=searchpath)
42 if subset is not None:
43 try:
44 config = config[subset]
45 except KeyError:
46 raise click.ClickException(f"{subset} not found in config at {repo}")
48 try:
49 config.dump(outfile)
50 except AttributeError:
51 print(config, file=outfile)