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

1# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> 

2# 

3# SPDX-License-Identifier: BSD-3-Clause 

4 

5from __future__ import annotations 

6 

7import argparse 

8import textwrap 

9 

10from sphinx.util import logging 

11 

12from .update_catalog import setup_verbosity 

13 

14logger = logging.getLogger(__name__) 

15 

16 

17def _main(args) -> None: 

18 """Main function, that actually executes the dump-objects command.""" 

19 setup_verbosity(args.verbose) 

20 

21 from sphinx.ext import intersphinx 

22 

23 for k in args.url: 

24 logger.info(f"Dumping {k}...") 

25 intersphinx.inspect_main([k]) 

26 

27 

28def add_parser(subparsers) -> argparse.ArgumentParser: 

29 """Just sets up the parser for this CLI.""" 

30 prog = "auto-intersphinx dump-objects" 

31 

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: 

40 

41 1. Dumps objects documented in a local Sphinx build: 

42 

43 .. code:: sh 

44 

45 {prog} html/objects.inv 

46 

47 

48 2. Dumps objects documented in python 3.x: 

49 

50 .. code:: sh 

51 

52 {prog} https://docs.python.org/3/objects.inv 

53 

54 

55 3. Dumps objects documented in numpy: 

56 

57 .. code:: sh 

58 

59 {prog} https://docs.scipy.org/doc/numpy/objects.inv 

60 """ 

61 ), 

62 ) 

63 

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 ) 

71 

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 ) 

78 

79 parser.set_defaults(func=_main) 

80 

81 return parser