##// END OF EJS Templates
darker
Nikita Kniazev -
Show More
@@ -1,79 +1,80 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2 """Script to auto-generate our API docs.
2 """Script to auto-generate our API docs.
3 """
3 """
4
4
5 import os
5 import os
6 import sys
6 import sys
7
7
8 pjoin = os.path.join
8 pjoin = os.path.join
9
9
10 here = os.path.abspath(os.path.dirname(__file__))
10 here = os.path.abspath(os.path.dirname(__file__))
11 sys.path.append(pjoin(os.path.abspath(here), 'sphinxext'))
11 sys.path.append(pjoin(os.path.abspath(here), 'sphinxext'))
12
12
13 from apigen import ApiDocWriter
13 from apigen import ApiDocWriter
14
14
15 source = pjoin(here, 'source')
15 source = pjoin(here, 'source')
16
16
17 #*****************************************************************************
17 #*****************************************************************************
18 if __name__ == '__main__':
18 if __name__ == '__main__':
19 package = 'IPython'
19 package = 'IPython'
20 outdir = pjoin(source, 'api', 'generated')
20 outdir = pjoin(source, 'api', 'generated')
21 docwriter = ApiDocWriter(package,rst_extension='.rst')
21 docwriter = ApiDocWriter(package,rst_extension='.rst')
22 # You have to escape the . here because . is a special char for regexps.
22 # You have to escape the . here because . is a special char for regexps.
23 # You must do make clean if you change this!
23 # You must do make clean if you change this!
24 docwriter.package_skip_patterns += [r'\.external$',
24 docwriter.package_skip_patterns += [r'\.external$',
25 # Extensions are documented elsewhere.
25 # Extensions are documented elsewhere.
26 r'\.extensions',
26 r'\.extensions',
27 # Magics are documented separately
27 # Magics are documented separately
28 r'\.core\.magics',
28 r'\.core\.magics',
29 # This isn't API
29 # This isn't API
30 r'\.sphinxext',
30 r'\.sphinxext',
31 # Shims
31 # Shims
32 r'\.kernel',
32 r'\.kernel',
33 r'\.terminal\.pt_inputhooks',
33 r'\.terminal\.pt_inputhooks',
34 ]
34 ]
35
35
36 # The inputhook* modules often cause problems on import, such as trying to
36 # The inputhook* modules often cause problems on import, such as trying to
37 # load incompatible Qt bindings. It's easiest to leave them all out. The
37 # load incompatible Qt bindings. It's easiest to leave them all out. The
38 docwriter.module_skip_patterns += [ r'\.lib\.inputhook.+',
38 docwriter.module_skip_patterns += [
39 r'\.ipdoctest',
39 r"\.lib\.inputhook.+",
40 r'\.testing\.plugin',
40 r"\.ipdoctest",
41 # Backwards compat import for lib.lexers
41 r"\.testing\.plugin",
42 r'\.nbconvert\.utils\.lexers',
42 # Backwards compat import for lib.lexers
43 # We document this manually.
43 r"\.nbconvert\.utils\.lexers",
44 r'\.utils\.py3compat',
44 # We document this manually.
45 # These are exposed in display
45 r"\.utils\.py3compat",
46 r'\.core\.display',
46 # These are exposed in display
47 r'\.lib\.display',
47 r"\.core\.display",
48 # Shims
48 r"\.lib\.display",
49 r'\.config',
49 # Shims
50 r'\.consoleapp',
50 r"\.config",
51 r'\.frontend$',
51 r"\.consoleapp",
52 r'\.html',
52 r"\.frontend$",
53 r'\.nbconvert',
53 r"\.html",
54 r'\.nbformat',
54 r"\.nbconvert",
55 r'\.parallel',
55 r"\.nbformat",
56 r'\.qt',
56 r"\.parallel",
57 # this is deprecated.
57 r"\.qt",
58 r'\.utils\.version',
58 # this is deprecated.
59 # Private APIs (there should be a lot more here)
59 r"\.utils\.version",
60 r'\.terminal\.ptutils',
60 # Private APIs (there should be a lot more here)
61 ]
61 r"\.terminal\.ptutils",
62 ]
62 # main API is in the inputhook module, which is documented.
63 # main API is in the inputhook module, which is documented.
63
64
64 # These modules import functions and classes from other places to expose
65 # These modules import functions and classes from other places to expose
65 # them as part of the public API. They must have __all__ defined. The
66 # them as part of the public API. They must have __all__ defined. The
66 # non-API modules they import from should be excluded by the skip patterns
67 # non-API modules they import from should be excluded by the skip patterns
67 # above.
68 # above.
68 docwriter.names_from__all__.update({
69 docwriter.names_from__all__.update({
69 'IPython.display',
70 'IPython.display',
70 })
71 })
71
72
72 # Now, generate the outputs
73 # Now, generate the outputs
73 docwriter.write_api_docs(outdir)
74 docwriter.write_api_docs(outdir)
74 # Write index with .txt extension - we can include it, but Sphinx won't try
75 # Write index with .txt extension - we can include it, but Sphinx won't try
75 # to compile it
76 # to compile it
76 docwriter.write_index(outdir, 'gen.txt',
77 docwriter.write_index(outdir, 'gen.txt',
77 relative_to = pjoin(source, 'api')
78 relative_to = pjoin(source, 'api')
78 )
79 )
79 print ('%d files written' % len(docwriter.written_modules))
80 print ('%d files written' % len(docwriter.written_modules))
General Comments 0
You need to be logged in to leave comments. Login now