Coverage for src/auto_intersphinx/dump_objects.py: 100%
19 statements
« prev ^ index » next coverage.py v7.4.3, created at 2024-04-22 14:48 +0200
« prev ^ index » next coverage.py v7.4.3, created at 2024-04-22 14:48 +0200
1# Copyright © 2022 Idiap Research Institute <contact@idiap.ch>
2#
3# SPDX-License-Identifier: BSD-3-Clause
5from __future__ import annotations
7import argparse
8import textwrap
10from sphinx.util import logging
12from .update_catalog import setup_verbosity
14logger = logging.getLogger(__name__)
17def _main(args) -> None:
18 """Main function, that actually executes the dump-objects command."""
19 setup_verbosity(args.verbose)
21 from sphinx.ext import intersphinx
23 for k in args.url:
24 logger.info(f"Dumping {k}...")
25 intersphinx.inspect_main([k])
28def add_parser(subparsers) -> argparse.ArgumentParser:
29 """Just sets up the parser for this CLI."""
30 prog = "auto-intersphinx dump-objects"
32 parser = subparsers.add_parser(
33 prog.split()[1],
34 help="Dumps objects documented in a Sphinx inventory URL",
35 description="Dumps objects documented in a Sphinx inventory URL",
36 formatter_class=argparse.RawDescriptionHelpFormatter,
37 epilog=textwrap.dedent(
38 f"""
39 examples:
41 1. Dumps objects documented in a local Sphinx build:
43 .. code:: sh
45 {prog} html/objects.inv
48 2. Dumps objects documented in python 3.x:
50 .. code:: sh
52 {prog} https://docs.python.org/3/objects.inv
55 3. Dumps objects documented in numpy:
57 .. code:: sh
59 {prog} https://docs.scipy.org/doc/numpy/objects.inv
60 """
61 ),
62 )
64 parser.add_argument(
65 "-v",
66 "--verbose",
67 action="count",
68 default=0,
69 help="Can be set multiple times to increase console verbosity",
70 )
72 parser.add_argument(
73 "url",
74 nargs="*",
75 default=[],
76 help="``objects.inv`` URL to parse and dump (can refer to a local file)",
77 )
79 parser.set_defaults(func=_main)
81 return parser