Ejemplo n.º 1
0
def main():
    di = DoxyIndex(xml_location)
    blocks = di.in_category(Block)
    block_blocks = []
    for block in blocks:
        if block.name().startswith("gr::blocks::"):
            block_blocks.append(block)

    all_grouped_blocks = []
    groups = di.in_category(Group)
    groupinfo = []
    for group in groups:
        contains_block_blocks = False
        block_list = []
        members = group.members()
        for member in members:
            if member.name().startswith("gr::blocks"):
                all_grouped_blocks.append(member)
                if not contains_block_blocks:
                    contains_block_blocks = True
                    groupinfo.append((group.name(), group.title, block_list))
                block_list.append(member)

    for block in block_blocks:
        if block not in all_grouped_blocks:
            print("Didn't find block {0}".format(block.name()))

    blockindex = ["""gnuradio.blocks
===============

.. automodule:: gnuradio.blocks"""]
    for groupname, grouptitle, blocks in groupinfo:
        blockindex.append("")
        blockindex.append(grouptitle)
        blockindex.append('-'*len(grouptitle))
        blockindex.append("""
.. autosummary::
   :nosignatures:
""")
        for block in blocks:
            blockindex.append("   gnuradio.blocks.{0}".format(
                block.name()[len("gr::blocks::"):]))
        grouppage = []
        title = "gnuradio.blocks: {0}".format(grouptitle)
        grouppage.append(title)
        grouppage.append('='*len(title))
        grouppage.append('')
        for block in blocks:
            shortname = block.name()[len("gr::blocks::"):]
            grouppage.append(".. autoblock:: gnuradio.blocks.{0}".format(shortname))
        text = '\n'.join(grouppage)
        f = open("{0}.rst".format(groupname), 'w')
        f.write(text)
        f.close()
    text = "\n".join(blockindex)
    f = open("index.rst", 'w')
    f.write(text)
    f.close()
Ejemplo n.º 2
0
    # If this excludes anything important please add it here.

    output = "\n\n".join(output)

    swig_doc = open(swigdocfilename, 'w')
    swig_doc.write(output)
    swig_doc.close()


if __name__ == "__main__":
    # Parse command line options and set up doxyxml.
    err_msg = "Execute using: python swig_doc.py xml_path outputfilename"
    if len(sys.argv) != 3:
        raise Exception(err_msg)
    xml_path = sys.argv[1]
    swigdocfilename = sys.argv[2]
    di = DoxyIndex(xml_path)

    # gnuradio.gr.msq_queue.insert_tail and delete_head create errors unless docstrings are defined!
    # This is presumably a bug in SWIG.
    #msg_q = di.get_member(u'gr_msg_queue', DoxyClass)
    #insert_tail = msg_q.get_member(u'insert_tail', DoxyFunction)
    #delete_head = msg_q.get_member(u'delete_head', DoxyFunction)
    output = []
    #output.append(make_func_entry(insert_tail, name='gr_py_msg_queue__insert_tail'))
    #output.append(make_func_entry(delete_head, name='gr_py_msg_queue__delete_head'))
    custom_output = "\n\n".join(output)

    # Generate the docstrings interface file.
    make_swig_interface_file(di, swigdocfilename, custom_output=custom_output)
Ejemplo n.º 3
0
                        choices=["scrape", "sub", "copy"])

    parser.add_argument("--xml_path")
    parser.add_argument("--bindings_dir")
    parser.add_argument("--output_dir")
    parser.add_argument("--json_path")
    parser.add_argument("--filter", default=None)

    return parser.parse_args()


if __name__ == "__main__":
    # Parse command line options and set up doxyxml.
    args = argParse()
    if args.function.lower() == 'scrape':
        di = DoxyIndex(args.xml_path)
        docstrings_dict = get_docstrings_dict(di)
        with open(args.json_path, 'w') as fp:
            json.dump(docstrings_dict, fp)
    elif args.function.lower() == 'sub':
        with open(args.json_path, 'r') as fp:
            docstrings_dict = json.load(fp)
        pydoc_files = glob.glob(
            os.path.join(args.bindings_dir, '*_pydoc_template.h'))
        sub_docstring_in_pydoc_h(pydoc_files, docstrings_dict, args.output_dir,
                                 args.filter)
    elif args.function.lower() == 'copy':
        pydoc_files = glob.glob(
            os.path.join(args.bindings_dir, '*_pydoc_template.h'))
        copy_docstring_templates(pydoc_files, args.output_dir)
Ejemplo n.º 4
0
def main():
    di = DoxyIndex(xml_location)
    blocks = di.in_category(Block)
    analog_blocks = []
    for block in blocks:
        if block.name().startswith("gr::analog::"):
            analog_blocks.append(block)

    all_grouped_blocks = []
    groups = di.in_category(Group)
    groupinfo = []
    for group in groups:
        contains_analog_blocks = False
        block_list = []
        members = group.members()
        for member in members:
            if member.name().startswith("gr::analog"):
                all_grouped_blocks.append(member)
                if not contains_analog_blocks:
                    contains_analog_blocks = True
                    groupinfo.append((group.name(), group.title, block_list))
                block_list.append(member)

    for block in analog_blocks:
        if block not in all_grouped_blocks:
            print("Didn't find block {0}".format(block.name()))

    blockindex = [
        """gnuradio.analog
===============

.. automodule:: gnuradio.analog"""
    ]
    for groupname, grouptitle, blocks in groupinfo:
        blockindex.append("")
        blockindex.append(grouptitle)
        blockindex.append('-' * len(grouptitle))
        blockindex.append("""
.. autosummary::
   :nosignatures:
""")
        for block in blocks:
            blockindex.append("   gnuradio.analog.{0}".format(
                block.name()[len("gr::analog::"):]))
        grouppage = []
        title = "gnuradio.analog: {0}".format(grouptitle)
        grouppage.append(title)
        grouppage.append('=' * len(title))
        grouppage.append('')
        for block in blocks:
            shortname = block.name()[len("gr::analog::"):]
            grouppage.append(
                ".. autoblock:: gnuradio.analog.{0}".format(shortname))
        text = '\n'.join(grouppage)
        f = open("{0}.rst".format(groupname), 'w')
        f.write(text)
        f.close()
    text = "\n".join(blockindex)
    f = open("index.rst", 'w')
    f.write(text)
    f.close()