aboutsummaryrefslogblamecommitdiffstats
path: root/doc/generate-libbe-txt.py
blob: 77f775a9afe4ea9a6cbf658ba1cf95bf73f404d7 (plain) (tree)
































                                                                      
                                                     

                         



                                                       











                                                                     
#!/usr/bin/python
#
# Copyright

"""Auto-generate reStructuredText of the libbe module tree for Sphinx.
"""

import sys
import os, os.path

sys.path.insert(0, os.path.abspath('..'))
from test import python_tree

def title(modname):
    t = ':mod:`%s`' % modname
    delim = '*'*len(t)
    return '\n'.join([delim, t, delim, '', ''])

def automodule(modname):
    return '\n'.join([
            '.. automodule:: %s' % modname,
            '   :members:',
            '   :undoc-members:',
            '', ''])

def toctree(children):
    if len(children) == 0:
        return ''
    return '\n'.join([
            '.. toctree::',
            '   :maxdepth: 2',
            '',
            ] + [
            '   %s.txt' % c for c in sorted(children)
            ] + ['', ''])

def make_module_txt(modname, children, subdir='libbe'):
    filename = os.path.join(subdir, '%s.txt' % modname)
    if not os.path.exists(subdir):
        os.mkdir(subdir)
    if os.path.exists(filename):
        return None # don't overwrite potentially hand-written files.
    f = file(filename, 'w')
    f.write(title(modname))
    f.write(automodule(modname))
    f.write(toctree(children))
    f.close()

if __name__ == '__main__':
    pt = python_tree(root_path='../libbe', root_modname='libbe')
    for node in pt.traverse():
        make_module_txt(node.modname, [c.modname for c in node])