File: autogen_api.py

package info (click to toggle)
ipython 1.2.1-2~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 22,884 kB
  • sloc: python: 67,305; makefile: 469; lisp: 272; sh: 251
file content (66 lines) | stat: -rwxr-xr-x 3,022 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/env python
"""Script to auto-generate our API docs.
"""
# stdlib imports
import os
import sys

# local imports
sys.path.append(os.path.abspath('sphinxext'))
from apigen import ApiDocWriter

#*****************************************************************************
if __name__ == '__main__':
    pjoin = os.path.join
    package = 'IPython'
    outdir = pjoin('source','api','generated')
    docwriter = ApiDocWriter(package,rst_extension='.rst')
    # You have to escape the . here because . is a special char for regexps.
    # You must do make clean if you change this!
    docwriter.package_skip_patterns += [r'\.fixes$',
                                        r'\.external$',
                                        r'\.extensions',
                                        r'\.kernel\.config',
                                        r'\.attic',
                                        r'\.quarantine',
                                        r'\.deathrow',
                                        r'\.config\.default',
                                        r'\.config\.profile',
                                        r'\.frontend',
                                        r'\.gui',
                                        r'\.kernel',
                                        # For now, the zmq code has
                                        # unconditional top-level code so it's
                                        # not import safe.  This needs fixing
                                        r'\.zmq',
                                        ]

    docwriter.module_skip_patterns += [ r'\.core\.fakemodule',
                                        r'\.testing\.iptest',
                                        # Keeping these disabled is OK
                                        r'\.parallel\.controller\.mongodb',
                                        r'\.lib\.inputhookwx',
                                        r'\.lib\.inputhookgtk',
                                        r'\.cocoa',
                                        r'\.ipdoctest',
                                        r'\.Gnuplot',
                                        r'\.frontend\.process\.winprocess',
                                        r'\.frontend',
                                        r'\.Shell',
                                        ]
    
    # If we don't have pexpect, we can't load irunner, so skip any code that
    # depends on it
    try:
        import pexpect
    except ImportError:
        docwriter.module_skip_patterns += [r'\.lib\.irunner',
                                           r'\.testing\.mkdoctests']
    # Now, generate the outputs
    docwriter.write_api_docs(outdir)
    # Write index with .txt extension - we can include it, but Sphinx won't try
    # to compile it
    docwriter.write_index(outdir, 'gen.txt',
                          relative_to = pjoin('source','api')
                          )
    print ('%d files written' % len(docwriter.written_modules))