File: __main__.py

package info (click to toggle)
numpy 1%3A1.19.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 27,552 kB
  • sloc: ansic: 164,908; python: 128,463; cpp: 1,117; makefile: 594; javascript: 387; f90: 298; sh: 294; fortran: 200; sed: 140; perl: 34
file content (44 lines) | stat: -rw-r--r-- 1,288 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import argparse
import importlib
import ast

from .docscrape_sphinx import get_doc_object


def main(argv=None):
    """Test numpydoc docstring generation for a given object"""

    ap = argparse.ArgumentParser(description=__doc__)
    ap.add_argument('import_path', help='e.g. numpy.ndarray')

    def _parse_config(s):
        key, _, value = s.partition('=')
        value = ast.literal_eval(value)
        return key, value

    ap.add_argument('-c', '--config', type=_parse_config,
                    action='append',
                    help='key=val where val will be parsed by literal_eval, '
                         'e.g. -c use_plots=True. Multiple -c can be used.')
    args = ap.parse_args(argv)

    parts = args.import_path.split('.')

    for split_point in range(len(parts), 0, -1):
        try:
            path = '.'.join(parts[:split_point])
            obj = importlib.import_module(path)
        except ImportError:
            continue
        break
    else:
        raise ImportError('Could not resolve {!r} to an importable object'
                          ''.format(args.import_path))

    for part in parts[split_point:]:
        obj = getattr(obj, part)

    print(get_doc_object(obj, config=dict(args.config or [])))

if __name__ == '__main__':
    main()