diff options
author | Marcus Müller <marcus@hostalia.de> | 2018-08-31 23:02:22 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2018-08-31 23:02:22 +0200 |
commit | 254fe5e89403d4de1fa6663d09efdf946996aff3 (patch) | |
tree | 62877d7ac7fdedf6c397c51e22ac6f97eba97ddf /docs | |
parent | 896d1c9da31963ecf5b0d90942c2af51ca998a69 (diff) | |
parent | 5ad935c3a3dd46ce2860b13e2b774e4841784616 (diff) |
Merge remote-tracking branch 'origin/next' into merge_next
Diffstat (limited to 'docs')
41 files changed, 462 insertions, 642 deletions
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 98d7d1c419..b9eb977a3a 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -36,15 +36,6 @@ GR_REGISTER_COMPONENT("sphinx" ENABLE_SPHINX SPHINX_FOUND) if(ENABLE_DOXYGEN) ######################################################################## -# Setup CPack components -######################################################################## -include(GrPackage) -CPACK_COMPONENT("docs" - DISPLAY_NAME "Documentation" - DESCRIPTION "Doxygen generated documentation" -) - -######################################################################## # Add subdirectories ######################################################################## add_subdirectory(doxygen) @@ -58,14 +49,6 @@ endif(ENABLE_DOXYGEN) ######################################################################## if(ENABLE_SPHINX) -######################################################################## -# Setup CPack components -######################################################################## -include(GrPackage) -CPACK_COMPONENT("docs" - DISPLAY_NAME "Documentation" - DESCRIPTION "Sphinx generated documentation" -) ######################################################################## # Add subdirectories diff --git a/docs/doxygen/CMakeLists.txt b/docs/doxygen/CMakeLists.txt index faa1fbc891..952579f589 100644 --- a/docs/doxygen/CMakeLists.txt +++ b/docs/doxygen/CMakeLists.txt @@ -41,30 +41,6 @@ configure_file( set(BUILT_DIRS ${CMAKE_CURRENT_BINARY_DIR}/xml ${CMAKE_CURRENT_BINARY_DIR}/html) -if(ENABLE_GNURADIO_RUNTIME) - list(APPEND GENERATED_DEPS pmt_generated) -endif(ENABLE_GNURADIO_RUNTIME) - -if(ENABLE_GR_BLOCKS) - list(APPEND GENERATED_DEPS blocks_generated_includes) -endif(ENABLE_GR_BLOCKS) - -if(ENABLE_GR_ANALOG) - list(APPEND GENERATED_DEPS analog_generated_includes) -endif(ENABLE_GR_ANALOG) - -if(ENABLE_GR_DIGITAL) - list(APPEND GENERATED_DEPS digital_generated_includes) -endif(ENABLE_GR_DIGITAL) - -if(ENABLE_GR_FILTER) - list(APPEND GENERATED_DEPS filter_generated_includes) -endif(ENABLE_GR_FILTER) - -if(ENABLE_GR_TRELLIS) - list(APPEND GENERATED_DEPS trellis_generated_includes) -endif(ENABLE_GR_TRELLIS) - ######################################################################## # Make and install doxygen docs ######################################################################## @@ -78,4 +54,4 @@ add_custom_command( add_custom_target(doxygen_target ALL DEPENDS ${BUILT_DIRS}) -install(DIRECTORY ${BUILT_DIRS} DESTINATION ${GR_PKG_DOC_DIR} COMPONENT "docs") +install(DIRECTORY ${BUILT_DIRS} DESTINATION ${GR_PKG_DOC_DIR}) diff --git a/docs/doxygen/Doxyfile.in b/docs/doxygen/Doxyfile.in index 3050a464b9..72e7977dff 100644 --- a/docs/doxygen/Doxyfile.in +++ b/docs/doxygen/Doxyfile.in @@ -145,8 +145,6 @@ STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@/gnuradio-runtime/include \ @CMAKE_BINARY_DIR@/gnuradio-runtime/include \ @CMAKE_SOURCE_DIR@/gr-analog/include \ @CMAKE_BINARY_DIR@/gr-analog/include \ - @CMAKE_SOURCE_DIR@/gr-atsc/include \ - @CMAKE_BINARY_DIR@/gr-atsc/include \ @CMAKE_SOURCE_DIR@/gr-audio/include \ @CMAKE_BINARY_DIR@/gr-audio/include \ @CMAKE_SOURCE_DIR@/gr-blocks/include \ @@ -159,18 +157,12 @@ STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@/gnuradio-runtime/include \ @CMAKE_BINARY_DIR@/gr-digital/include \ @CMAKE_SOURCE_DIR@/gr-dtv/include \ @CMAKE_BINARY_DIR@/gr-dtv/include \ - @CMAKE_SOURCE_DIR@/gr-fcd/include \ - @CMAKE_BINARY_DIR@/gr-fcd/include \ @CMAKE_SOURCE_DIR@/gr-fec/include \ @CMAKE_BINARY_DIR@/gr-fec/include \ @CMAKE_SOURCE_DIR@/gr-fft/include \ @CMAKE_BINARY_DIR@/gr-fft/include \ @CMAKE_SOURCE_DIR@/gr-filter/include \ @CMAKE_BINARY_DIR@/gr-filter/include \ - @CMAKE_SOURCE_DIR@/gr-noaa/include \ - @CMAKE_BINARY_DIR@/gr-noaa/include \ - @CMAKE_SOURCE_DIR@/gr-pager/include \ - @CMAKE_BINARY_DIR@/gr-pager/include \ @CMAKE_SOURCE_DIR@/gr-qtgui/include \ @CMAKE_BINARY_DIR@/gr-qtgui/include \ @CMAKE_SOURCE_DIR@/gr-trellis/include \ @@ -183,8 +175,6 @@ STRIP_FROM_INC_PATH = @CMAKE_SOURCE_DIR@/gnuradio-runtime/include \ @CMAKE_BINARY_DIR@/gr-vocoder/include \ @CMAKE_SOURCE_DIR@/gr-wavelet/include \ @CMAKE_BINARY_DIR@/gr-wavelet/include \ - @CMAKE_SOURCE_DIR@/gr-wxgui/include \ - @CMAKE_BINARY_DIR@/gr-wxgui/include \ @CMAKE_SOURCE_DIR@/gr-zeromq/include \ @CMAKE_BINARY_DIR@/gr-zeromq/include \ @CMAKE_SOURCE_DIR@/volk/include \ @@ -748,19 +738,12 @@ EXCLUDE = @abs_top_srcdir@/volk \ @abs_top_builddir@/dtools \ @abs_top_builddir@/gnuradio-runtime/lib/runtime/gr_error_handler.cc \ @abs_top_builddir@/gnuradio-runtime/swig \ - @abs_top_builddir@/gnuradio-runtime/python/build_utils.py \ - @abs_top_builddir@/gnuradio-runtime/python/build_utils_codes.py \ @abs_top_builddir@/gnuradio-runtime/python/gnuradio/gr/gr_threading.py \ @abs_top_builddir@/gnuradio-runtime/python/gnuradio/gr/gr_threading_23.py \ @abs_top_builddir@/gnuradio-runtime/python/gnuradio/gr/gr_threading_24.py \ - @abs_top_builddir@/gr-atsc/swig/atsc_swig.py \ - @abs_top_builddir@/gr-atsc/lib/gen_encoder.py \ - @abs_top_builddir@/gr-atsc/python \ - @abs_top_builddir@/gr-pager/swig/pager_swig.py \ @abs_top_builddir@/gr-trellis/doc \ @abs_top_builddir@/gr-trellis/swig/trellis_swig.py \ @abs_top_builddir@/gr-video-sdl/swig/video_sdl_swig.py \ - @abs_top_builddir@/gr-wxgui/python \ @abs_top_builddir@/grc \ @abs_top_builddir@/_CPack_Packages \ @abs_top_srcdir@/cmake \ @@ -771,8 +754,6 @@ EXCLUDE = @abs_top_srcdir@/volk \ @abs_top_builddir@/gnuradio-runtime/lib \ @abs_top_srcdir@/gr-analog/lib \ @abs_top_builddir@/gr-analog/lib \ - @abs_top_srcdir@/gr-atsc/lib \ - @abs_top_builddir@/gr-atsc/lib \ @abs_top_srcdir@/gr-audio/lib \ @abs_top_builddir@/gr-audio/lib \ @abs_top_srcdir@/gr-blocks/lib \ @@ -793,18 +774,12 @@ EXCLUDE = @abs_top_srcdir@/volk \ @abs_top_builddir@/gr-dtv/lib/dvbs2 \ @abs_top_srcdir@/gr-dtv/lib/dvbt2 \ @abs_top_builddir@/gr-dtv/lib/dvbr2 \ - @abs_top_srcdir@/gr-fcd/lib \ - @abs_top_builddir@/gr-fcd/lib \ @abs_top_srcdir@/gr-fec/lib \ @abs_top_builddir@/gr-fec/lib \ @abs_top_srcdir@/gr-filter/lib \ @abs_top_builddir@/gr-filter/lib \ @abs_top_srcdir@/gr-fft/lib \ @abs_top_builddir@/gr-fft/lib \ - @abs_top_srcdir@/gr-noaa/lib \ - @abs_top_builddir@/gr-noaa/lib \ - @abs_top_srcdir@/gr-pager/lib \ - @abs_top_builddir@/gr-pager/lib \ @abs_top_srcdir@/gr-qtgui/lib \ @abs_top_builddir@/gr-qtgui/lib \ @abs_top_srcdir@/gr-trellis/lib \ @@ -821,8 +796,6 @@ EXCLUDE = @abs_top_srcdir@/volk \ @abs_top_builddir@/gr-vocoder/lib \ @abs_top_srcdir@/gr-wavelet/lib \ @abs_top_builddir@/gr-wavelet/lib \ - @abs_top_srcdir@/gr-wxgui/lib \ - @abs_top_builddir@/gr-wxgui/lib \ @abs_top_srcdir@/gr-zeromq/lib \ @abs_top_builddir@/gr-zeromq/lib \ @abs_top_srcdir@/volk/cmake/msvc \ @@ -846,7 +819,6 @@ EXCLUDE_PATTERNS = */.deps/* \ */.svn/* \ */CVS/* \ */__init__.py \ - */gr-atsc/src/lib/Gr* \ */moc_*.cc \ */qa_*.cc \ */qa_*.h \ diff --git a/docs/doxygen/doxyxml/__init__.py b/docs/doxygen/doxyxml/__init__.py index 5cd0b3c6c5..b7a8884519 100644 --- a/docs/doxygen/doxyxml/__init__.py +++ b/docs/doxygen/doxyxml/__init__.py @@ -63,8 +63,9 @@ This line is uninformative and is only to test line breaks in the comments. u'Outputs the vital aadvark statistics.' """ +from __future__ import unicode_literals -from doxyindex import DoxyIndex, DoxyFunction, DoxyParam, DoxyClass, DoxyFile, DoxyNamespace, DoxyGroup, DoxyFriend, DoxyOther +from .doxyindex import DoxyIndex, DoxyFunction, DoxyParam, DoxyClass, DoxyFile, DoxyNamespace, DoxyGroup, DoxyFriend, DoxyOther def _test(): import os diff --git a/docs/doxygen/doxyxml/base.py b/docs/doxygen/doxyxml/base.py index e8f026ab90..f6f2b8e195 100644 --- a/docs/doxygen/doxyxml/base.py +++ b/docs/doxygen/doxyxml/base.py @@ -25,23 +25,26 @@ Classes based upon this are used to make more user-friendly interfaces to the doxygen xml docs than the generated classes provide. """ +from __future__ import print_function +from __future__ import unicode_literals + import os import pdb from xml.parsers.expat import ExpatError -from generated import compound +from .generated import compound class Base(object): - class Duplicate(StandardError): + class Duplicate(Exception): pass - class NoSuchMember(StandardError): + class NoSuchMember(Exception): pass - class ParsingError(StandardError): + class ParsingError(Exception): pass def __init__(self, parse_data, top=None): @@ -94,7 +97,7 @@ class Base(object): for cls in self.mem_classes: if cls.can_parse(mem): return cls - raise StandardError(("Did not find a class for object '%s'." \ + raise Exception(("Did not find a class for object '%s'." \ % (mem.get_name()))) def convert_mem(self, mem): @@ -102,11 +105,11 @@ class Base(object): cls = self.get_cls(mem) converted = cls.from_parse_data(mem, self.top) if converted is None: - raise StandardError('No class matched this object.') + raise Exception('No class matched this object.') self.add_ref(converted) return converted - except StandardError, e: - print e + except Exception as e: + print(e) @classmethod def includes(cls, inst): diff --git a/docs/doxygen/doxyxml/doxyindex.py b/docs/doxygen/doxyxml/doxyindex.py index e039737714..083550bdf8 100644 --- a/docs/doxygen/doxyxml/doxyindex.py +++ b/docs/doxygen/doxyxml/doxyindex.py @@ -22,12 +22,13 @@ Classes providing more user-friendly interfaces to the doxygen xml docs than the generated classes provide. """ +from __future__ import unicode_literals import os -from generated import index -from base import Base -from text import description +from .generated import index +from .base import Base +from .text import description class DoxyIndex(Base): """ diff --git a/docs/doxygen/doxyxml/generated/__init__.py b/docs/doxygen/doxyxml/generated/__init__.py index 39823979f6..23095c1f34 100644 --- a/docs/doxygen/doxyxml/generated/__init__.py +++ b/docs/doxygen/doxyxml/generated/__init__.py @@ -5,3 +5,4 @@ These do the real work of parsing the doxygen xml files but the resultant classes are not very friendly to navigate so the rest of the doxyxml module processes them further. """ +from __future__ import unicode_literals diff --git a/docs/doxygen/doxyxml/generated/compound.py b/docs/doxygen/doxyxml/generated/compound.py index 1522ac23f1..cd3cd1f96b 100644 --- a/docs/doxygen/doxyxml/generated/compound.py +++ b/docs/doxygen/doxyxml/generated/compound.py @@ -3,15 +3,16 @@ """ Generated Mon Feb 9 19:08:05 2009 by generateDS.py. """ +from __future__ import unicode_literals + -from string import lower as str_lower from xml.dom import minidom from xml.dom import Node import sys -import compoundsuper as supermod -from compoundsuper import MixedContainer +from . import compoundsuper as supermod +from .compoundsuper import MixedContainer class DoxygenTypeSub(supermod.DoxygenType): @@ -499,5 +500,3 @@ def parse(inFilename): rootObj = supermod.DoxygenType.factory() rootObj.build(rootNode) return rootObj - - diff --git a/docs/doxygen/doxyxml/generated/compoundsuper.py b/docs/doxygen/doxyxml/generated/compoundsuper.py index 6255dda163..f18ec6cda9 100644 --- a/docs/doxygen/doxyxml/generated/compoundsuper.py +++ b/docs/doxygen/doxyxml/generated/compoundsuper.py @@ -4,12 +4,16 @@ # Generated Thu Jun 11 18:44:25 2009 by generateDS.py. # +from __future__ import print_function +from __future__ import unicode_literals + import sys -import getopt -from string import lower as str_lower + from xml.dom import minidom from xml.dom import Node +import six + # # User methods # @@ -19,9 +23,9 @@ from xml.dom import Node try: from generatedssuper import GeneratedsSuper -except ImportError, exp: +except ImportError as exp: - class GeneratedsSuper: + class GeneratedsSuper(object): def format_string(self, input_data, input_name=''): return input_data def format_integer(self, input_data, input_name=''): @@ -64,7 +68,7 @@ def showIndent(outfile, level): outfile.write(' ') def quote_xml(inStr): - s1 = (isinstance(inStr, basestring) and inStr or + s1 = (isinstance(inStr, six.string_types) and inStr or '%s' % inStr) s1 = s1.replace('&', '&') s1 = s1.replace('<', '<') @@ -72,7 +76,7 @@ def quote_xml(inStr): return s1 def quote_attrib(inStr): - s1 = (isinstance(inStr, basestring) and inStr or + s1 = (isinstance(inStr, six.string_types) and inStr or '%s' % inStr) s1 = s1.replace('&', '&') s1 = s1.replace('<', '<') @@ -102,7 +106,7 @@ def quote_python(inStr): return '"""%s"""' % s1 -class MixedContainer: +class MixedContainer(object): # Constants for category: CategoryNone = 0 CategoryText = 1 @@ -4221,7 +4225,7 @@ class codelineType(GeneratedsSuper): if attrs.get('lineno'): try: self.lineno = int(attrs.get('lineno').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (lineno): %s' % exp) if attrs.get('refkind'): self.refkind = attrs.get('refkind').value @@ -4504,12 +4508,12 @@ class referenceType(GeneratedsSuper): if attrs.get('endline'): try: self.endline = int(attrs.get('endline').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (endline): %s' % exp) if attrs.get('startline'): try: self.startline = int(attrs.get('startline').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (startline): %s' % exp) if attrs.get('refid'): self.refid = attrs.get('refid').value @@ -4627,17 +4631,17 @@ class locationType(GeneratedsSuper): if attrs.get('bodystart'): try: self.bodystart = int(attrs.get('bodystart').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (bodystart): %s' % exp) if attrs.get('line'): try: self.line = int(attrs.get('line').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (line): %s' % exp) if attrs.get('bodyend'): try: self.bodyend = int(attrs.get('bodyend').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (bodyend): %s' % exp) if attrs.get('bodyfile'): self.bodyfile = attrs.get('bodyfile').value @@ -6778,12 +6782,12 @@ class docTableType(GeneratedsSuper): if attrs.get('rows'): try: self.rows = int(attrs.get('rows').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (rows): %s' % exp) if attrs.get('cols'): try: self.cols = int(attrs.get('cols').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (cols): %s' % exp) def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.ELEMENT_NODE and \ @@ -7108,7 +7112,7 @@ class docHeadingType(GeneratedsSuper): if attrs.get('level'): try: self.level = int(attrs.get('level').value) - except ValueError, exp: + except ValueError as exp: raise ValueError('Bad integer attribute (level): %s' % exp) def buildChildren(self, child_, nodeName_): if child_.nodeType == Node.TEXT_NODE: @@ -8283,7 +8287,7 @@ Options: """ def usage(): - print USAGE_TEXT + print(USAGE_TEXT) sys.exit(1) @@ -8339,4 +8343,3 @@ if __name__ == '__main__': main() #import pdb #pdb.run('main()') - diff --git a/docs/doxygen/doxyxml/generated/index.py b/docs/doxygen/doxyxml/generated/index.py index 7a70e14a1a..eb9a9048b2 100644 --- a/docs/doxygen/doxyxml/generated/index.py +++ b/docs/doxygen/doxyxml/generated/index.py @@ -3,14 +3,15 @@ """ Generated Mon Feb 9 19:08:05 2009 by generateDS.py. """ +from __future__ import unicode_literals from xml.dom import minidom import os import sys -import compound +from . import compound -import indexsuper as supermod +from . import indexsuper as supermod class DoxygenTypeSub(supermod.DoxygenType): def __init__(self, version=None, compound=None): diff --git a/docs/doxygen/doxyxml/generated/indexsuper.py b/docs/doxygen/doxyxml/generated/indexsuper.py index a991530198..11312db635 100644 --- a/docs/doxygen/doxyxml/generated/indexsuper.py +++ b/docs/doxygen/doxyxml/generated/indexsuper.py @@ -4,12 +4,16 @@ # Generated Thu Jun 11 18:43:54 2009 by generateDS.py. # +from __future__ import print_function +from __future__ import unicode_literals + import sys -import getopt -from string import lower as str_lower + from xml.dom import minidom from xml.dom import Node +import six + # # User methods # @@ -19,9 +23,9 @@ from xml.dom import Node try: from generatedssuper import GeneratedsSuper -except ImportError, exp: +except ImportError as exp: - class GeneratedsSuper: + class GeneratedsSuper(object): def format_string(self, input_data, input_name=''): return input_data def format_integer(self, input_data, input_name=''): @@ -64,7 +68,7 @@ def showIndent(outfile, level): outfile.write(' ') def quote_xml(inStr): - s1 = (isinstance(inStr, basestring) and inStr or + s1 = (isinstance(inStr, six.string_types) and inStr or '%s' % inStr) s1 = s1.replace('&', '&') s1 = s1.replace('<', '<') @@ -72,7 +76,7 @@ def quote_xml(inStr): return s1 def quote_attrib(inStr): - s1 = (isinstance(inStr, basestring) and inStr or + s1 = (isinstance(inStr, six.string_types) and inStr or '%s' % inStr) s1 = s1.replace('&', '&') s1 = s1.replace('<', '<') @@ -102,7 +106,7 @@ def quote_python(inStr): return '"""%s"""' % s1 -class MixedContainer: +class MixedContainer(object): # Constants for category: CategoryNone = 0 CategoryText = 1 @@ -462,7 +466,7 @@ Options: """ def usage(): - print USAGE_TEXT + print(USAGE_TEXT) sys.exit(1) @@ -520,4 +524,3 @@ if __name__ == '__main__': main() #import pdb #pdb.run('main()') - diff --git a/docs/doxygen/doxyxml/text.py b/docs/doxygen/doxyxml/text.py index 629edd180d..f0322f6237 100644 --- a/docs/doxygen/doxyxml/text.py +++ b/docs/doxygen/doxyxml/text.py @@ -21,6 +21,7 @@ """ Utilities for extracting text from generated classes. """ +from __future__ import unicode_literals def is_string(txt): if isinstance(txt, str): @@ -49,7 +50,7 @@ def description_bit(obj): elif is_string(obj): return obj else: - raise StandardError('Expecting a string or something with content, content_ or value attribute') + raise Exception('Expecting a string or something with content, content_ or value attribute') # If this bit is a paragraph then add one some line breaks. if hasattr(obj, 'name') and obj.name == 'para': result += "\n\n" diff --git a/docs/doxygen/other/build_guide.dox.in b/docs/doxygen/other/build_guide.dox.in index a324f669bb..ac28b0be7c 100644 --- a/docs/doxygen/other/build_guide.dox.in +++ b/docs/doxygen/other/build_guide.dox.in @@ -76,8 +76,6 @@ cppzmq is included (undocumentedly) in the debian and Ubuntu libzmq3-dev package \li qwt (>= 5.2.0) http://sourceforge.net/projects/qwt/ \li pyqt (>= 4.10.0) http://www.riverbankcomputing.co.uk/software/pyqt/download -\subsection dep_gr_wxgui gr-wxgui: The WX-based Graphical User Interface -\li wxpython (>= 2.8) http://www.wxpython.org/ \li python-lxml (>= 1.3.6) http://lxml.de/ \subsection dep_gr_audio gr-audio: Audio Subsystems (system/OS dependent) diff --git a/docs/doxygen/other/components.dox b/docs/doxygen/other/components.dox index b1f88d20b6..2b6fc2091a 100644 --- a/docs/doxygen/other/components.dox +++ b/docs/doxygen/other/components.dox @@ -32,7 +32,6 @@ All our in-tree components have their own top-level documentation: \li \subpage page_ctrlport \li \subpage page_digital \li \subpage page_packet_comms -\li \subpage page_fcd \li \subpage page_fec \li \subpage page_fft \li \subpage page_filter diff --git a/docs/doxygen/other/doxypy.py b/docs/doxygen/other/doxypy.py index 15d3e0824d..e474a9694f 100755..100644 --- a/docs/doxygen/other/doxypy.py +++ b/docs/doxygen/other/doxypy.py @@ -1,5 +1,8 @@ #!/usr/bin/env python +from __future__ import print_function +from __future__ import unicode_literals + __applicationName__ = "doxypy" __blurb__ = """ doxypy is an input filter for Doxygen. It preprocesses python @@ -11,17 +14,17 @@ __doc__ = __blurb__ + \ """ In order to make Doxygen preprocess files through doxypy, simply add the following lines to your Doxyfile: - FILTER_SOURCE_FILES = YES - INPUT_FILTER = "python /path/to/doxypy.py" + FILTER_SOURCE_FILES = YES + INPUT_FILTER = "python /path/to/doxypy.py" """ -__version__ = "0.4.1" +__version__ = "0.4.2" __date__ = "5th December 2008" __website__ = "http://code.foosel.org/doxypy" __author__ = ( - "Philippe 'demod' Neumann (doxypy at demod dot org)", - "Gina 'foosel' Haeussge (gina at foosel dot net)" + "Philippe 'demod' Neumann (doxypy at demod dot org)", + "Gina 'foosel' Haeussge (gina at foosel dot net)" ) __licenseName__ = "GPL v2" @@ -42,373 +45,367 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. import sys import re -from optparse import OptionParser, OptionGroup +from argparse import ArgumentParser class FSM(object): - """Implements a finite state machine. - - Transitions are given as 4-tuples, consisting of an origin state, a target - state, a condition for the transition (given as a reference to a function - which gets called with a given piece of input) and a pointer to a function - to be called upon the execution of the given transition. - """ - - """ - @var transitions holds the transitions - @var current_state holds the current state - @var current_input holds the current input - @var current_transition hold the currently active transition - """ - - def __init__(self, start_state=None, transitions=[]): - self.transitions = transitions - self.current_state = start_state - self.current_input = None - self.current_transition = None - - def setStartState(self, state): - self.current_state = state - - def addTransition(self, from_state, to_state, condition, callback): - self.transitions.append([from_state, to_state, condition, callback]) - - def makeTransition(self, input): - """ Makes a transition based on the given input. - - @param input input to parse by the FSM - """ - for transition in self.transitions: - [from_state, to_state, condition, callback] = transition - if from_state == self.current_state: - match = condition(input) - if match: - self.current_state = to_state - self.current_input = input - self.current_transition = transition - if options.debug: - print >>sys.stderr, "# FSM: executing (%s -> %s) for line '%s'" % (from_state, to_state, input) - callback(match) - return + """Implements a finite state machine. + + Transitions are given as 4-tuples, consisting of an origin state, a target + state, a condition for the transition (given as a reference to a function + which gets called with a given piece of input) and a pointer to a function + to be called upon the execution of the given transition. + """ + + """ + @var transitions holds the transitions + @var current_state holds the current state + @var current_input holds the current input + @var current_transition hold the currently active transition + """ + + def __init__(self, start_state=None, transitions=[]): + self.transitions = transitions + self.current_state = start_state + self.current_input = None + self.current_transition = None + + def setStartState(self, state): + self.current_state = state + + def addTransition(self, from_state, to_state, condition, callback): + self.transitions.append([from_state, to_state, condition, callback]) + + def makeTransition(self, input): + """ Makes a transition based on the given input. + + @param input input to parse by the FSM + """ + for transition in self.transitions: + [from_state, to_state, condition, callback] = transition + if from_state == self.current_state: + match = condition(input) + if match: + self.current_state = to_state + self.current_input = input + self.current_transition = transition + if args.debug: + print("# FSM: executing (%s -> %s) for line '%s'" % (from_state, to_state, input), file=sys.stderr) + callback(match) + return class Doxypy(object): - def __init__(self): - string_prefixes = "[uU]?[rR]?" - - self.start_single_comment_re = re.compile("^\s*%s(''')" % string_prefixes) - self.end_single_comment_re = re.compile("(''')\s*$") - - self.start_double_comment_re = re.compile("^\s*%s(\"\"\")" % string_prefixes) - self.end_double_comment_re = re.compile("(\"\"\")\s*$") - - self.single_comment_re = re.compile("^\s*%s(''').*(''')\s*$" % string_prefixes) - self.double_comment_re = re.compile("^\s*%s(\"\"\").*(\"\"\")\s*$" % string_prefixes) - - self.defclass_re = re.compile("^(\s*)(def .+:|class .+:)") - self.empty_re = re.compile("^\s*$") - self.hashline_re = re.compile("^\s*#.*$") - self.importline_re = re.compile("^\s*(import |from .+ import)") - - self.multiline_defclass_start_re = re.compile("^(\s*)(def|class)(\s.*)?$") - self.multiline_defclass_end_re = re.compile(":\s*$") - - ## Transition list format - # ["FROM", "TO", condition, action] - transitions = [ - ### FILEHEAD - - # single line comments - ["FILEHEAD", "FILEHEAD", self.single_comment_re.search, self.appendCommentLine], - ["FILEHEAD", "FILEHEAD", self.double_comment_re.search, self.appendCommentLine], - - # multiline comments - ["FILEHEAD", "FILEHEAD_COMMENT_SINGLE", self.start_single_comment_re.search, self.appendCommentLine], - ["FILEHEAD_COMMENT_SINGLE", "FILEHEAD", self.end_single_comment_re.search, self.appendCommentLine], - ["FILEHEAD_COMMENT_SINGLE", "FILEHEAD_COMMENT_SINGLE", self.catchall, self.appendCommentLine], - ["FILEHEAD", "FILEHEAD_COMMENT_DOUBLE", self.start_double_comment_re.search, self.appendCommentLine], - ["FILEHEAD_COMMENT_DOUBLE", "FILEHEAD", self.end_double_comment_re.search, self.appendCommentLine], - ["FILEHEAD_COMMENT_DOUBLE", "FILEHEAD_COMMENT_DOUBLE", self.catchall, self.appendCommentLine], - - # other lines - ["FILEHEAD", "FILEHEAD", self.empty_re.search, self.appendFileheadLine], - ["FILEHEAD", "FILEHEAD", self.hashline_re.search, self.appendFileheadLine], - ["FILEHEAD", "FILEHEAD", self.importline_re.search, self.appendFileheadLine], - ["FILEHEAD", "DEFCLASS", self.defclass_re.search, self.resetCommentSearch], - ["FILEHEAD", "DEFCLASS_MULTI", self.multiline_defclass_start_re.search, self.resetCommentSearch], - ["FILEHEAD", "DEFCLASS_BODY", self.catchall, self.appendFileheadLine], - - ### DEFCLASS - - # single line comments - ["DEFCLASS", "DEFCLASS_BODY", self.single_comment_re.search, self.appendCommentLine], - ["DEFCLASS", "DEFCLASS_BODY", self.double_comment_re.search, self.appendCommentLine], - - # multiline comments - ["DEFCLASS", "COMMENT_SINGLE", self.start_single_comment_re.search, self.appendCommentLine], - ["COMMENT_SINGLE", "DEFCLASS_BODY", self.end_single_comment_re.search, self.appendCommentLine], - ["COMMENT_SINGLE", "COMMENT_SINGLE", self.catchall, self.appendCommentLine], - ["DEFCLASS", "COMMENT_DOUBLE", self.start_double_comment_re.search, self.appendCommentLine], - ["COMMENT_DOUBLE", "DEFCLASS_BODY", self.end_double_comment_re.search, self.appendCommentLine], - ["COMMENT_DOUBLE", "COMMENT_DOUBLE", self.catchall, self.appendCommentLine], - - # other lines - ["DEFCLASS", "DEFCLASS", self.empty_re.search, self.appendDefclassLine], - ["DEFCLASS", "DEFCLASS", self.defclass_re.search, self.resetCommentSearch], - ["DEFCLASS", "DEFCLASS_MULTI", self.multiline_defclass_start_re.search, self.resetCommentSearch], - ["DEFCLASS", "DEFCLASS_BODY", self.catchall, self.stopCommentSearch], - - ### DEFCLASS_BODY - - ["DEFCLASS_BODY", "DEFCLASS", self.defclass_re.search, self.startCommentSearch], - ["DEFCLASS_BODY", "DEFCLASS_MULTI", self.multiline_defclass_start_re.search, self.startCommentSearch], - ["DEFCLASS_BODY", "DEFCLASS_BODY", self.catchall, self.appendNormalLine], - - ### DEFCLASS_MULTI - ["DEFCLASS_MULTI", "DEFCLASS", self.multiline_defclass_end_re.search, self.appendDefclassLine], - ["DEFCLASS_MULTI", "DEFCLASS_MULTI", self.catchall, self.appendDefclassLine], - ] - - self.fsm = FSM("FILEHEAD", transitions) - self.outstream = sys.stdout - - self.output = [] - self.comment = [] - self.filehead = [] - self.defclass = [] - self.indent = "" - - def __closeComment(self): - """Appends any open comment block and triggering block to the output.""" - - if options.autobrief: - if len(self.comment) == 1 \ - or (len(self.comment) > 2 and self.comment[1].strip() == ''): - self.comment[0] = self.__docstringSummaryToBrief(self.comment[0]) - - if self.comment: - block = self.makeCommentBlock() - self.output.extend(block) - - if self.defclass: - self.output.extend(self.defclass) - - def __docstringSummaryToBrief(self, line): - """Adds \\brief to the docstrings summary line. - - A \\brief is prepended, provided no other doxygen command is at the - start of the line. - """ - stripped = line.strip() - if stripped and not stripped[0] in ('@', '\\'): - return "\\brief " + line - else: - return line - - def __flushBuffer(self): - """Flushes the current outputbuffer to the outstream.""" - if self.output: - try: - if options.debug: - print >>sys.stderr, "# OUTPUT: ", self.output - print >>self.outstream, "\n".join(self.output) - self.outstream.flush() - except IOError: - # Fix for FS#33. Catches "broken pipe" when doxygen closes - # stdout prematurely upon usage of INPUT_FILTER, INLINE_SOURCES - # and FILTER_SOURCE_FILES. - pass - self.output = [] - - def catchall(self, input): - """The catchall-condition, always returns true.""" - return True - - def resetCommentSearch(self, match): - """Restarts a new comment search for a different triggering line. - - Closes the current commentblock and starts a new comment search. - """ - if options.debug: - print >>sys.stderr, "# CALLBACK: resetCommentSearch" - self.__closeComment() - self.startCommentSearch(match) - - def startCommentSearch(self, match): - """Starts a new comment search. - - Saves the triggering line, resets the current comment and saves - the current indentation. - """ - if options.debug: - print >>sys.stderr, "# CALLBACK: startCommentSearch" - self.defclass = [self.fsm.current_input] - self.comment = [] - self.indent = match.group(1) - - def stopCommentSearch(self, match): - """Stops a comment search. - - Closes the current commentblock, resets the triggering line and - appends the current line to the output. - """ - if options.debug: - print >>sys.stderr, "# CALLBACK: stopCommentSearch" - self.__closeComment() - - self.defclass = [] - self.output.append(self.fsm.current_input) - - def appendFileheadLine(self, match): - """Appends a line in the FILEHEAD state. - - Closes the open comment block, resets it and appends the current line. - """ - if options.debug: - print >>sys.stderr, "# CALLBACK: appendFileheadLine" - self.__closeComment() - self.comment = [] - self.output.append(self.fsm.current_input) - - def appendCommentLine(self, match): - """Appends a comment line. - - The comment delimiter is removed from multiline start and ends as - well as singleline comments. - """ - if options.debug: - print >>sys.stderr, "# CALLBACK: appendCommentLine" - (from_state, to_state, condition, callback) = self.fsm.current_transition - - # single line comment - if (from_state == "DEFCLASS" and to_state == "DEFCLASS_BODY") \ - or (from_state == "FILEHEAD" and to_state == "FILEHEAD"): - # remove comment delimiter from begin and end of the line - activeCommentDelim = match.group(1) - line = self.fsm.current_input - self.comment.append(line[line.find(activeCommentDelim)+len(activeCommentDelim):line.rfind(activeCommentDelim)]) - - if (to_state == "DEFCLASS_BODY"): - self.__closeComment() - self.defclass = [] - # multiline start - elif from_state == "DEFCLASS" or from_state == "FILEHEAD": - # remove comment delimiter from begin of the line - activeCommentDelim = match.group(1) - line = self.fsm.current_input - self.comment.append(line[line.find(activeCommentDelim)+len(activeCommentDelim):]) - # multiline end - elif to_state == "DEFCLASS_BODY" or to_state == "FILEHEAD": - # remove comment delimiter from end of the line - activeCommentDelim = match.group(1) - line = self.fsm.current_input - self.comment.append(line[0:line.rfind(activeCommentDelim)]) - if (to_state == "DEFCLASS_BODY"): - self.__closeComment() - self.defclass = [] - # in multiline comment - else: - # just append the comment line - self.comment.append(self.fsm.current_input) - - def appendNormalLine(self, match): - """Appends a line to the output.""" - if options.debug: - print >>sys.stderr, "# CALLBACK: appendNormalLine" - self.output.append(self.fsm.current_input) - - def appendDefclassLine(self, match): - """Appends a line to the triggering block.""" - if options.debug: - print >>sys.stderr, "# CALLBACK: appendDefclassLine" - self.defclass.append(self.fsm.current_input) - - def makeCommentBlock(self): - """Indents the current comment block with respect to the current - indentation level. - - @returns a list of indented comment lines - """ - doxyStart = "##" - commentLines = self.comment - - commentLines = map(lambda x: "%s# %s" % (self.indent, x), commentLines) - l = [self.indent + doxyStart] - l.extend(commentLines) - - return l - - def parse(self, input): - """Parses a python file given as input string and returns the doxygen- - compatible representation. - - @param input the python code to parse - @returns the modified python code - """ - lines = input.split("\n") - - for line in lines: - self.fsm.makeTransition(line) - - if self.fsm.current_state == "DEFCLASS": - self.__closeComment() - - return "\n".join(self.output) - - def parseFile(self, filename): - """Parses a python file given as input string and returns the doxygen- - compatible representation. - - @param input the python code to parse - @returns the modified python code - """ - f = open(filename, 'r') - - for line in f: - self.parseLine(line.rstrip('\r\n')) - if self.fsm.current_state == "DEFCLASS": - self.__closeComment() - self.__flushBuffer() - f.close() - - def parseLine(self, line): - """Parse one line of python and flush the resulting output to the - outstream. - - @param line the python code line to parse - """ - self.fsm.makeTransition(line) - self.__flushBuffer() - -def optParse(): - """Parses commandline options.""" - parser = OptionParser(prog=__applicationName__, version="%prog " + __version__) - - parser.set_usage("%prog [options] filename") - parser.add_option("--autobrief", - action="store_true", dest="autobrief", - help="use the docstring summary line as \\brief description" - ) - parser.add_option("--debug", - action="store_true", dest="debug", - help="enable debug output on stderr" - ) - - ## parse options - global options - (options, filename) = parser.parse_args() - - if not filename: - print >>sys.stderr, "No filename given." - sys.exit(-1) - - return filename[0] + def __init__(self): + string_prefixes = "[uU]?[rR]?" + + self.start_single_comment_re = re.compile("^\s*%s(''')" % string_prefixes) + self.end_single_comment_re = re.compile("(''')\s*$") + + self.start_double_comment_re = re.compile("^\s*%s(\"\"\")" % string_prefixes) + self.end_double_comment_re = re.compile("(\"\"\")\s*$") + + self.single_comment_re = re.compile("^\s*%s(''').*(''')\s*$" % string_prefixes) + self.double_comment_re = re.compile("^\s*%s(\"\"\").*(\"\"\")\s*$" % string_prefixes) + + self.defclass_re = re.compile("^(\s*)(def .+:|class .+:)") + self.empty_re = re.compile("^\s*$") + self.hashline_re = re.compile("^\s*#.*$") + self.importline_re = re.compile("^\s*(import |from .+ import)") + + self.multiline_defclass_start_re = re.compile("^(\s*)(def|class)(\s.*)?$") + self.multiline_defclass_end_re = re.compile(":\s*$") + + ## Transition list format + # ["FROM", "TO", condition, action] + transitions = [ + ### FILEHEAD + + # single line comments + ["FILEHEAD", "FILEHEAD", self.single_comment_re.search, self.appendCommentLine], + ["FILEHEAD", "FILEHEAD", self.double_comment_re.search, self.appendCommentLine], + + # multiline comments + ["FILEHEAD", "FILEHEAD_COMMENT_SINGLE", self.start_single_comment_re.search, self.appendCommentLine], + ["FILEHEAD_COMMENT_SINGLE", "FILEHEAD", self.end_single_comment_re.search, self.appendCommentLine], + ["FILEHEAD_COMMENT_SINGLE", "FILEHEAD_COMMENT_SINGLE", self.catchall, self.appendCommentLine], + ["FILEHEAD", "FILEHEAD_COMMENT_DOUBLE", self.start_double_comment_re.search, self.appendCommentLine], + ["FILEHEAD_COMMENT_DOUBLE", "FILEHEAD", self.end_double_comment_re.search, self.appendCommentLine], + ["FILEHEAD_COMMENT_DOUBLE", "FILEHEAD_COMMENT_DOUBLE", self.catchall, self.appendCommentLine], + + # other lines + ["FILEHEAD", "FILEHEAD", self.empty_re.search, self.appendFileheadLine], + ["FILEHEAD", "FILEHEAD", self.hashline_re.search, self.appendFileheadLine], + ["FILEHEAD", "FILEHEAD", self.importline_re.search, self.appendFileheadLine], + ["FILEHEAD", "DEFCLASS", self.defclass_re.search, self.resetCommentSearch], + ["FILEHEAD", "DEFCLASS_MULTI", self.multiline_defclass_start_re.search, self.resetCommentSearch], + ["FILEHEAD", "DEFCLASS_BODY", self.catchall, self.appendFileheadLine], + + ### DEFCLASS + + # single line comments + ["DEFCLASS", "DEFCLASS_BODY", self.single_comment_re.search, self.appendCommentLine], + ["DEFCLASS", "DEFCLASS_BODY", self.double_comment_re.search, self.appendCommentLine], + + # multiline comments + ["DEFCLASS", "COMMENT_SINGLE", self.start_single_comment_re.search, self.appendCommentLine], + ["COMMENT_SINGLE", "DEFCLASS_BODY", self.end_single_comment_re.search, self.appendCommentLine], + ["COMMENT_SINGLE", "COMMENT_SINGLE", self.catchall, self.appendCommentLine], + ["DEFCLASS", "COMMENT_DOUBLE", self.start_double_comment_re.search, self.appendCommentLine], + ["COMMENT_DOUBLE", "DEFCLASS_BODY", self.end_double_comment_re.search, self.appendCommentLine], + ["COMMENT_DOUBLE", "COMMENT_DOUBLE", self.catchall, self.appendCommentLine], + + # other lines + ["DEFCLASS", "DEFCLASS", self.empty_re.search, self.appendDefclassLine], + ["DEFCLASS", "DEFCLASS", self.defclass_re.search, self.resetCommentSearch], + ["DEFCLASS", "DEFCLASS_MULTI", self.multiline_defclass_start_re.search, self.resetCommentSearch], + ["DEFCLASS", "DEFCLASS_BODY", self.catchall, self.stopCommentSearch], + + ### DEFCLASS_BODY + + ["DEFCLASS_BODY", "DEFCLASS", self.defclass_re.search, self.startCommentSearch], + ["DEFCLASS_BODY", "DEFCLASS_MULTI", self.multiline_defclass_start_re.search, self.startCommentSearch], + ["DEFCLASS_BODY", "DEFCLASS_BODY", self.catchall, self.appendNormalLine], + + ### DEFCLASS_MULTI + ["DEFCLASS_MULTI", "DEFCLASS", self.multiline_defclass_end_re.search, self.appendDefclassLine], + ["DEFCLASS_MULTI", "DEFCLASS_MULTI", self.catchall, self.appendDefclassLine], + ] + + self.fsm = FSM("FILEHEAD", transitions) + self.outstream = sys.stdout + + self.output = [] + self.comment = [] + self.filehead = [] + self.defclass = [] + self.indent = "" + + def __closeComment(self): + """Appends any open comment block and triggering block to the output.""" + + if args.autobrief: + if len(self.comment) == 1 \ + or (len(self.comment) > 2 and self.comment[1].strip() == ''): + self.comment[0] = self.__docstringSummaryToBrief(self.comment[0]) + + if self.comment: + block = self.makeCommentBlock() + self.output.extend(block) + + if self.defclass: + self.output.extend(self.defclass) + + def __docstringSummaryToBrief(self, line): + """Adds \\brief to the docstrings summary line. + + A \\brief is prepended, provided no other doxygen command is at the + start of the line. + """ + stripped = line.strip() + if stripped and not stripped[0] in ('@', '\\'): + return "\\brief " + line + else: + return line + + def __flushBuffer(self): + """Flushes the current outputbuffer to the outstream.""" + if self.output: + try: + if args.debug: + print("# OUTPUT: ", self.output, file=sys.stderr) + print("\n".join(self.output), file=self.outstream) + self.outstream.flush() + except IOError: + # Fix for FS#33. Catches "broken pipe" when doxygen closes + # stdout prematurely upon usage of INPUT_FILTER, INLINE_SOURCES + # and FILTER_SOURCE_FILES. + pass + self.output = [] + + def catchall(self, input): + """The catchall-condition, always returns true.""" + return True + + def resetCommentSearch(self, match): + """Restarts a new comment search for a different triggering line. + + Closes the current commentblock and starts a new comment search. + """ + if args.debug: + print("# CALLBACK: resetCommentSearch", file=sys.stderr) + self.__closeComment() + self.startCommentSearch(match) + + def startCommentSearch(self, match): + """Starts a new comment search. + + Saves the triggering line, resets the current comment and saves + the current indentation. + """ + if args.debug: + print("# CALLBACK: startCommentSearch", file=sys.stderr) + self.defclass = [self.fsm.current_input] + self.comment = [] + self.indent = match.group(1) + + def stopCommentSearch(self, match): + """Stops a comment search. + + Closes the current commentblock, resets the triggering line and + appends the current line to the output. + """ + if args.debug: + print("# CALLBACK: stopCommentSearch", file=sys.stderr) + self.__closeComment() + + self.defclass = [] + self.output.append(self.fsm.current_input) + + def appendFileheadLine(self, match): + """Appends a line in the FILEHEAD state. + + Closes the open comment block, resets it and appends the current line. + """ + if args.debug: + print("# CALLBACK: appendFileheadLine", file=sys.stderr) + self.__closeComment() + self.comment = [] + self.output.append(self.fsm.current_input) + + def appendCommentLine(self, match): + """Appends a comment line. + + The comment delimiter is removed from multiline start and ends as + well as singleline comments. + """ + if args.debug: + print("# CALLBACK: appendCommentLine", file=sys.stderr) + (from_state, to_state, condition, callback) = self.fsm.current_transition + + # single line comment + if (from_state == "DEFCLASS" and to_state == "DEFCLASS_BODY") \ + or (from_state == "FILEHEAD" and to_state == "FILEHEAD"): + # remove comment delimiter from begin and end of the line + activeCommentDelim = match.group(1) + line = self.fsm.current_input + self.comment.append(line[line.find(activeCommentDelim)+len(activeCommentDelim):line.rfind(activeCommentDelim)]) + + if (to_state == "DEFCLASS_BODY"): + self.__closeComment() + self.defclass = [] + # multiline start + elif from_state == "DEFCLASS" or from_state == "FILEHEAD": + # remove comment delimiter from begin of the line + activeCommentDelim = match.group(1) + line = self.fsm.current_input + self.comment.append(line[line.find(activeCommentDelim)+len(activeCommentDelim):]) + # multiline end + elif to_state == "DEFCLASS_BODY" or to_state == "FILEHEAD": + # remove comment delimiter from end of the line + activeCommentDelim = match.group(1) + line = self.fsm.current_input + self.comment.append(line[0:line.rfind(activeCommentDelim)]) + if (to_state == "DEFCLASS_BODY"): + self.__closeComment() + self.defclass = [] + # in multiline comment + else: + # just append the comment line + self.comment.append(self.fsm.current_input) + + def appendNormalLine(self, match): + """Appends a line to the output.""" + if args.debug: + print("# CALLBACK: appendNormalLine", file=sys.stderr) + self.output.append(self.fsm.current_input) + + def appendDefclassLine(self, match): + """Appends a line to the triggering block.""" + if args.debug: + print("# CALLBACK: appendDefclassLine", file=sys.stderr) + self.defclass.append(self.fsm.current_input) + + def makeCommentBlock(self): + """Indents the current comment block with respect to the current + indentation level. + + @returns a list of indented comment lines + """ + doxyStart = "##" + commentLines = self.comment + + commentLines = ["%s# %s" % (self.indent, x) for x in commentLines] + l = [self.indent + doxyStart] + l.extend(commentLines) + + return l + + def parse(self, input): + """Parses a python file given as input string and returns the doxygen- + compatible representation. + + @param input the python code to parse + @returns the modified python code + """ + lines = input.split("\n") + + for line in lines: + self.fsm.makeTransition(line) + + if self.fsm.current_state == "DEFCLASS": + self.__closeComment() + + return "\n".join(self.output) + + def parseFile(self, filename): + """Parses a python file given as input string and returns the doxygen- + compatible representation. + + @param input the python code to parse + @returns the modified python code + """ + f = open(filename, 'r') + + for line in f: + self.parseLine(line.rstrip('\r\n')) + if self.fsm.current_state == "DEFCLASS": + self.__closeComment() + self.__flushBuffer() + f.close() + + def parseLine(self, line): + """Parse one line of python and flush the resulting output to the + outstream. + + @param line the python code line to parse + """ + self.fsm.makeTransition(line) + self.__flushBuffer() + +def argParse(): + """Parses commandline args.""" + parser = ArgumentParser(prog=__applicationName__) + + parser.add_argument("--version", action="version", + version="%(prog)s " + __version__ + ) + parser.add_argument("--autobrief", action="store_true", + help="use the docstring summary line as \\brief description" + ) + parser.add_argument("--debug", action="store_true", + help="enable debug output on stderr" + ) + parser.add_argument("filename", metavar="FILENAME") + + return parser.parse_args() def main(): - """Starts the parser on the file given by the filename as the first - argument on the commandline. - """ - filename = optParse() - fsm = Doxypy() - fsm.parseFile(filename) + """Starts the parser on the file given by the filename as the first + argument on the commandline. + """ + global args + args = argParse() + fsm = Doxypy() + fsm.parseFile(args.filename) if __name__ == "__main__": - main() + main() diff --git a/docs/doxygen/other/group_defs.dox b/docs/doxygen/other/group_defs.dox index 8edc8ab5ef..7ec67bde23 100644 --- a/docs/doxygen/other/group_defs.dox +++ b/docs/doxygen/other/group_defs.dox @@ -29,7 +29,6 @@ /*! \defgroup deprecated_blk Deprecated */ /*! \defgroup equalizers_blk Equalizers */ /*! \defgroup error_coding_blk Error Coding and Decoding */ -/*! \defgroup fcd_blk FCD Interface */ /*! \defgroup file_operators_blk File Operators */ /*! \defgroup filter_blk Filters */ /*! \defgroup fourier_analysis_blk Fourier Analysis */ @@ -41,11 +40,9 @@ /*! \defgroup misc_blk Miscellaneous */ /*! \defgroup modulators_blk Modulators and Demodulators */ /*! \defgroup networking_tools_blk Networking Tools */ -/*! \defgroup noaa_blk NOAA Blocks */ /*! \defgroup ofdm_blk OFDM Blocks */ /*! \defgroup packet_operators_blk Packet/Frame Operators */ /*! \defgroup peak_detectors_blk Peak Detectors */ -/*! \defgroup pager_blk Pager Blocks */ /*! \defgroup qtgui_blk QT Graphical Interfaces */ /*! \defgroup resamplers_blk Resamplers */ /*! \defgroup stream_operators_blk Streams Operators */ @@ -57,7 +54,6 @@ /*! \defgroup uhd_blk UHD Interface */ /*! \defgroup waveform_generators_blk Waveform Generators */ /*! \defgroup wavelet_blk Wavelet Transforms */ -/*! \defgroup wxgui_blk WX Graphical Interfaces */ /*! * \defgroup base_blk Base classes for GR Blocks @@ -77,16 +73,6 @@ * @{ */ -/*! - * \defgroup atsc ATSC - * ATSC Applications... - */ - -/*! - * \defgroup pager Pager - * Pager Applications - */ - /*! @} */ /*! \defgroup hardware Misc Hardware Control */ diff --git a/docs/doxygen/other/logger.dox b/docs/doxygen/other/logger.dox index c8e4a5daa2..00387768c0 100644 --- a/docs/doxygen/other/logger.dox +++ b/docs/doxygen/other/logger.dox @@ -17,12 +17,6 @@ from log4cpp (http://log4cpp.sourceforge.net/) which is readily available in most Linux distributions. This is an optional dependency and GNU Radio will work without it. -When configuring GNU Radio, the -DENABLE_GR_LOG=On|Off option to cmake -will allow the user to toggle use of the logger on and off. The logger -defaults to "on" and will use log4cpp if it is available. If log4cpp -is not found, the default logging will output to standard output or -standard error, depending on the level of the log message. - Logging is useful for blocks to print out certain amounts of data at different levels. These levels are: diff --git a/docs/doxygen/swig_doc.py b/docs/doxygen/swig_doc.py index c9e89aec1b..307920d776 100644 --- a/docs/doxygen/swig_doc.py +++ b/docs/doxygen/swig_doc.py @@ -26,6 +26,7 @@ The file instructs SWIG to transfer the doxygen comments into the python docstrings. """ +from __future__ import unicode_literals import sys, time @@ -84,8 +85,8 @@ def utoascii(text): if text is None: return '' out = text.encode('ascii', 'replace') - out = out.replace('"', '\\"') - return out + out = out.replace(b'"', b'\\"').decode('ascii') + return str(out) def combine_descriptions(obj): @@ -301,7 +302,7 @@ def make_swig_interface_file(di, swigdocfilename, custom_output=None): output = "\n\n".join(output) - swig_doc = file(swigdocfilename, 'w') + swig_doc = open(swigdocfilename, 'w') swig_doc.write(output) swig_doc.close() @@ -309,7 +310,7 @@ 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 StandardError(err_msg) + raise Exception(err_msg) xml_path = sys.argv[1] swigdocfilename = sys.argv[2] di = DoxyIndex(xml_path) diff --git a/docs/exploring-gnuradio/CMakeLists.txt b/docs/exploring-gnuradio/CMakeLists.txt index 5f5e2113cd..422b1ce85c 100644 --- a/docs/exploring-gnuradio/CMakeLists.txt +++ b/docs/exploring-gnuradio/CMakeLists.txt @@ -26,5 +26,4 @@ install( fm_rx.grc fm_demod.py DESTINATION ${GR_PKG_DOC_DIR} - COMPONENT "docs" ) diff --git a/docs/exploring-gnuradio/dial_tone.py b/docs/exploring-gnuradio/dial_tone.py index ba43c43bfc..08498a84e0 100755..100644 --- a/docs/exploring-gnuradio/dial_tone.py +++ b/docs/exploring-gnuradio/dial_tone.py @@ -20,6 +20,7 @@ # Boston, MA 02110-1301, USA. # +from __future__ import unicode_literals from gnuradio import gr from gnuradio import audio from gnuradio import analog @@ -40,5 +41,5 @@ def build_graph(): if __name__ == '__main__': tb = build_graph() tb.start() - raw_input('Press Enter to quit: ') + input('Press Enter to quit: ') tb.stop() diff --git a/docs/exploring-gnuradio/fm_demod.py b/docs/exploring-gnuradio/fm_demod.py index 8e8b6425f9..a297e78a76 100755..100644 --- a/docs/exploring-gnuradio/fm_demod.py +++ b/docs/exploring-gnuradio/fm_demod.py @@ -20,6 +20,8 @@ # Boston, MA 02110-1301, USA. # +from __future__ import division +from __future__ import unicode_literals from gnuradio import gr from gnuradio import blocks from gnuradio import filter @@ -46,7 +48,7 @@ class build_graph(gr.top_block): # Set the demodulator using the same deviation as the receiver. max_dev = 75e3 - fm_demod_gain = input_rate/(2*math.pi*max_dev/8.0) + fm_demod_gain = input_rate / (2*math.pi*max_dev/8.0) fm_demod = analog.quadrature_demod_cf(fm_demod_gain) # Create a filter for the resampler and filter the audio @@ -80,7 +82,7 @@ class build_graph(gr.top_block): def main(args): tb = build_graph() tb.start() # fork thread and return - raw_input('Press Enter to quit: ') + input('Press Enter to quit: ') tb.stop() if __name__ == '__main__': diff --git a/docs/sphinx/gnuradio_sphinx.py b/docs/sphinx/gnuradio_sphinx.py index 22b96c32e7..cdfd46ceca 100644 --- a/docs/sphinx/gnuradio_sphinx.py +++ b/docs/sphinx/gnuradio_sphinx.py @@ -1,6 +1,7 @@ """ Customizations of sphinx for gnuradio use. """ +from __future__ import unicode_literals from sphinx.ext.autodoc import py_ext_sig_re from sphinx.ext.autodoc import ClassDocumenter, FunctionDocumenter, members_option diff --git a/docs/sphinx/hieroglyph/__init__.py b/docs/sphinx/hieroglyph/__init__.py index 25dea27fba..d6b00fc049 100644 --- a/docs/sphinx/hieroglyph/__init__.py +++ b/docs/sphinx/hieroglyph/__init__.py @@ -1,6 +1,7 @@ +from __future__ import unicode_literals # We only need to expose the setup function to Sphinx from .hieroglyph import setup from .version import __version__ -__author__ = 'Robert Smallshire'
\ No newline at end of file +__author__ = 'Robert Smallshire' diff --git a/docs/sphinx/hieroglyph/errors.py b/docs/sphinx/hieroglyph/errors.py index 9c1d2213b2..9f7cde9570 100644 --- a/docs/sphinx/hieroglyph/errors.py +++ b/docs/sphinx/hieroglyph/errors.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals from sphinx.errors import ExtensionError @@ -7,4 +8,4 @@ class HieroglyphError(ExtensionError): ''' An exception type specific to the Hieroglyph Sphinx extension. ''' - pass
\ No newline at end of file + pass diff --git a/docs/sphinx/hieroglyph/hieroglyph.py b/docs/sphinx/hieroglyph/hieroglyph.py index 0056d9ab8a..bb58a6e04b 100644 --- a/docs/sphinx/hieroglyph/hieroglyph.py +++ b/docs/sphinx/hieroglyph/hieroglyph.py @@ -1,9 +1,11 @@ from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals import re -from errors import HieroglyphError -from nodes import (Node, Raises, Except, Note, Warning, Returns, Arg, +from .errors import HieroglyphError +from .nodes import (Node, Raises, Except, Note, Warning, Returns, Arg, ensure_terminal_blank) __author__ = 'Robert Smallshire' diff --git a/docs/sphinx/hieroglyph/nodes.py b/docs/sphinx/hieroglyph/nodes.py index f0c08b5621..1c091ab6a0 100644 --- a/docs/sphinx/hieroglyph/nodes.py +++ b/docs/sphinx/hieroglyph/nodes.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals __author__ = 'Robert Smallshire' class Node(object): diff --git a/docs/sphinx/hieroglyph/test/__init__.py b/docs/sphinx/hieroglyph/test/__init__.py index c9b674ead2..c568b0851f 100644 --- a/docs/sphinx/hieroglyph/test/__init__.py +++ b/docs/sphinx/hieroglyph/test/__init__.py @@ -1 +1,2 @@ +from __future__ import unicode_literals __author__ = 'rjs' diff --git a/docs/sphinx/hieroglyph/test/test_comments.py b/docs/sphinx/hieroglyph/test/test_comments.py index d1a1453ee1..1cc569605c 100644 --- a/docs/sphinx/hieroglyph/test/test_comments.py +++ b/docs/sphinx/hieroglyph/test/test_comments.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals import unittest from hieroglyph.hieroglyph import parse_hieroglyph_text diff --git a/docs/sphinx/hieroglyph/test/test_hierglyph.py b/docs/sphinx/hieroglyph/test/test_hierglyph.py index 4f86db5784..7815960905 100644 --- a/docs/sphinx/hieroglyph/test/test_hierglyph.py +++ b/docs/sphinx/hieroglyph/test/test_hierglyph.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals import unittest from hieroglyph.hieroglyph import first_paragraph_indent, gather_lines, unindent diff --git a/docs/sphinx/hieroglyph/test/test_nodes.py b/docs/sphinx/hieroglyph/test/test_nodes.py index 12cd25a03e..4b6003c91a 100644 --- a/docs/sphinx/hieroglyph/test/test_nodes.py +++ b/docs/sphinx/hieroglyph/test/test_nodes.py @@ -1,3 +1,4 @@ +from __future__ import unicode_literals import unittest from hieroglyph.nodes import Node, Arg, Raises, Except, Returns, Warning, Note diff --git a/docs/sphinx/hieroglyph/version.py b/docs/sphinx/hieroglyph/version.py index b35385b6b8..f823af4363 100644 --- a/docs/sphinx/hieroglyph/version.py +++ b/docs/sphinx/hieroglyph/version.py @@ -1,3 +1,4 @@ '''Specification of the hieroglyph version''' +from __future__ import unicode_literals __version__ = '0.6' diff --git a/docs/sphinx/source/blocks_blocks.rst b/docs/sphinx/source/blocks_blocks.rst index f214e01c47..5780d753bd 100644 --- a/docs/sphinx/source/blocks_blocks.rst +++ b/docs/sphinx/source/blocks_blocks.rst @@ -87,8 +87,6 @@ gnuradio.blocks .. autoblock:: gnuradio.blocks.max_ss .. autoblock:: gnuradio.blocks.message_burst_source .. autoblock:: gnuradio.blocks.message_debug -.. autoblock:: gnuradio.blocks.message_sink -.. autoblock:: gnuradio.blocks.message_source .. autoblock:: gnuradio.blocks.message_strobe .. autoblock:: gnuradio.blocks.message_strobe_random .. autoblock:: gnuradio.blocks.min_ff diff --git a/docs/sphinx/source/digital.rst b/docs/sphinx/source/digital.rst index e15c9166d9..415f4a3929 100644 --- a/docs/sphinx/source/digital.rst +++ b/docs/sphinx/source/digital.rst @@ -56,8 +56,6 @@ gnuradio.digital .. autofunction:: gnuradio.digital.packet_utils.make_header .. autofunction:: gnuradio.digital.packet_utils.make_packet .. autofunction:: gnuradio.digital.packet_utils.unmake_packet -.. autoclass:: gnuradio.digital.mod_pkts -.. autoclass:: gnuradio.digital.demod_pkts .. autofunction:: gnuradio.digital.psk_2_0x0 .. autofunction:: gnuradio.digital.psk_2_0x1 .. autofunction:: gnuradio.digital.sd_psk_2_0x0 @@ -79,8 +77,6 @@ gnuradio.digital .. autofunction:: gnuradio.digital.sd_psk_4_0x2_1_0 .. autofunction:: gnuradio.digital.sd_psk_4_0x3_1_0 .. autofunction:: gnuradio.digital.psk_constellation -.. autoclass:: gnuradio.digital.psk_mod -.. autoclass:: gnuradio.digital.psk_demod .. autofunction:: gnuradio.digital.qam_16_0x0_0_1_2_3 .. autofunction:: gnuradio.digital.qam_16_0x1_0_1_2_3 .. autofunction:: gnuradio.digital.qam_16_0x2_0_1_2_3 @@ -101,14 +97,8 @@ gnuradio.digital .. autofunction:: gnuradio.digital.make_differential_constellation .. autofunction:: gnuradio.digital.make_non_differential_constellation .. autofunction:: gnuradio.digital.qam_constellation -.. autoclass:: gnuradio.digital.qam_mod -.. autoclass:: gnuradio.digital.qam_demod .. autofunction:: gnuradio.digital.qpsk_constellation -.. autoclass:: gnuradio.digital.qpsk_mod -.. autoclass:: gnuradio.digital.qpsk_demod .. autofunction:: gnuradio.digital.dqpsk_constellation -.. autoclass:: gnuradio.digital.dqpsk_mod -.. autoclass:: gnuradio.digital.dqpsk_demod .. autofunction:: gnuradio.digital.soft_dec_table_generator .. autofunction:: gnuradio.digital.soft_dec_table .. autofunction:: gnuradio.digital.calc_soft_dec_from_table diff --git a/docs/sphinx/source/digital_blocks.rst b/docs/sphinx/source/digital_blocks.rst index 1dfd017069..faee4c179c 100644 --- a/docs/sphinx/source/digital_blocks.rst +++ b/docs/sphinx/source/digital_blocks.rst @@ -43,7 +43,6 @@ gnuradio.digital .. autoblock:: gnuradio.digital.kurtotic_equalizer_cc .. autoblock:: gnuradio.digital.lms_dd_equalizer_cc .. autoblock:: gnuradio.digital.map_bb -.. autoblock:: gnuradio.digital.mpsk_receiver_cc .. autoblock:: gnuradio.digital.mpsk_snr_est_cc .. autoblock:: gnuradio.digital.msk_timing_recovery_cc .. autoblock:: gnuradio.digital.ofdm_carrier_allocator_cvc diff --git a/docs/sphinx/source/fcd_blocks.rst b/docs/sphinx/source/fcd_blocks.rst deleted file mode 100644 index 8aed544c97..0000000000 --- a/docs/sphinx/source/fcd_blocks.rst +++ /dev/null @@ -1,6 +0,0 @@ -gnuradio.fcd -============ - -.. automodule:: gnuradio.fcd - -.. autoblock:: gnuradio.fcd.source_c diff --git a/docs/sphinx/source/filter_blocks.rst b/docs/sphinx/source/filter_blocks.rst index 1ad2705e7e..50eee7db58 100644 --- a/docs/sphinx/source/filter_blocks.rst +++ b/docs/sphinx/source/filter_blocks.rst @@ -16,10 +16,10 @@ gnuradio.filters .. autoblock:: gnuradio.filter.fir_filter_fff .. autoblock:: gnuradio.filter.fir_filter_fsf .. autoblock:: gnuradio.filter.fir_filter_scc -.. autoblock:: gnuradio.filter.fractional_interpolator_cc -.. autoblock:: gnuradio.filter.fractional_interpolator_ff -.. autoblock:: gnuradio.filter.fractional_resampler_cc -.. autoblock:: gnuradio.filter.fractional_resampler_ff +.. autoblock:: gnuradio.filter.mmse_interpolator_cc +.. autoblock:: gnuradio.filter.mmse_interpolator_ff +.. autoblock:: gnuradio.filter.mmse_resampler_cc +.. autoblock:: gnuradio.filter.mmse_resampler_ff .. autoblock:: gnuradio.filter.freq_xlating_fir_filter_ccc .. autoblock:: gnuradio.filter.freq_xlating_fir_filter_ccf .. autoblock:: gnuradio.filter.freq_xlating_fir_filter_fcc diff --git a/docs/sphinx/source/index.rst b/docs/sphinx/source/index.rst index 5c14d22cce..38ef409b7c 100644 --- a/docs/sphinx/source/index.rst +++ b/docs/sphinx/source/index.rst @@ -13,19 +13,15 @@ gnuradio blocks_comedi <comedi_blocks> blocks_digital <digital_blocks> blocks_dtv <dtv_blocks> - blocks_fcd <fcd_blocks> blocks_fec <fec_blocks> blocks_fft <fft_blocks> blocks_filter <filter_blocks> - blocks_noaa <noaa_blocks> - blocks_pager <pager_blocks> blocks_qtgui <qtgui_blocks> blocks_trellis <trellis_blocks> blocks_uhd <uhd_blocks> blocks_video_sdl <video_sdl_blocks> blocks_vocoder <vocoder_blocks> blocks_wavelet <wavelet_blocks> - blocks_wxgui <wxgui_blocks> blocks_zeromq <zeromq_blocks> analog <analog> channels <channels> @@ -37,7 +33,6 @@ gnuradio trellis <trellis> uhd <uhd> vocoder <vocoder> - wxgui <wxgui> .. automodule:: gnuradio .. automodule:: pmt @@ -524,15 +519,6 @@ Error Coding Blocks gnuradio.fec.tagged_encoder -FCD Blocks ----------- - -.. autosummary:: - :nosignatures: - - gnuradio.fcd.source_c - - File Operator Blocks -------------------- @@ -567,10 +553,10 @@ Filter Blocks gnuradio.filter.fir_filter_fff gnuradio.filter.fir_filter_fsf gnuradio.filter.fir_filter_scc - gnuradio.filter.fractional_interpolator_cc - gnuradio.filter.fractional_interpolator_ff - gnuradio.filter.fractional_resampler_cc - gnuradio.filter.fractional_resampler_ff + gnuradio.filter.mmse_interpolator_cc + gnuradio.filter.mmse_interpolator_ff + gnuradio.filter.mmse_resampler_cc + gnuradio.filter.mmse_resampler_ff gnuradio.filter.freq_xlating_fir_filter_ccc gnuradio.filter.freq_xlating_fir_filter_ccf gnuradio.filter.freq_xlating_fir_filter_fcc @@ -656,8 +642,6 @@ Instrumentation Blocks gnuradio.qtgui.vector_sink_f gnuradio.qtgui.waterfall_sink_c gnuradio.qtgui.waterfall_sink_f - gnuradio.wxgui.histo_sink_f - gnuradio.wxgui.oscope_sink_f @@ -789,8 +773,6 @@ Message Tool Blocks gnuradio.blocks.message_burst_source gnuradio.blocks.message_debug - gnuradio.blocks.message_sink - gnuradio.blocks.message_source gnuradio.blocks.message_strobe gnuradio.blocks.message_strobe_random gnuradio.blocks.pdu_filter @@ -859,17 +841,6 @@ Networking Tools Blocks gnuradio.blocks.udp_source -NOAA Blocks ------------ - -.. autosummary:: - :nosignatures: - - gnuradio.noaa.hrpt_decoder - gnuradio.noaa.hrpt_deframer - gnuradio.noaa.hrpt_pll_cf - - OFDM Blocks ----------- @@ -913,20 +884,7 @@ Packet Operator Blocks gnuradio.digital.simple_correlator gnuradio.digital.simple_framer - -Pager Blocks ------------- - -.. autosummary:: - :nosignatures: - - gnuradio.pager.flex_deinterleave - gnuradio.pager.flex_frame - gnuradio.pager.flex_parse - gnuradio.pager.flex_sync - gnuradio.pager.slicer_fb - - + Peak Detector Blocks -------------------- @@ -947,8 +905,8 @@ Resampler Blocks .. autosummary:: :nosignatures: - gnuradio.filter.fractional_resampler_cc - gnuradio.filter.fractional_resampler_ff + gnuradio.filter.mmse_resampler_cc + gnuradio.filter.mmse_resampler_ff gnuradio.filter.pfb.arb_resampler_ccf gnuradio.filter.pfb.arb_resampler_fff gnuradio.filter.pfb.arb_resampler_ccc @@ -1042,7 +1000,6 @@ Synchronizer Blocks gnuradio.digital.corr_est_cc gnuradio.digital.costas_loop_cc gnuradio.digital.fll_band_edge_cc - gnuradio.digital.mpsk_receiver_cc gnuradio.digital.msk_timing_recovery_cc gnuradio.analog.pll_carriertracking_cc gnuradio.analog.pll_freqdet_cf @@ -1300,8 +1257,6 @@ Helper Classes: Digital gnuradio.digital.packet_utils.make_header gnuradio.digital.packet_utils.make_packet gnuradio.digital.packet_utils.unmake_packet - gnuradio.digital.mod_pkts - gnuradio.digital.demod_pkts gnuradio.digital.psk_2_0x0 gnuradio.digital.psk_2_0x1 gnuradio.digital.sd_psk_2_0x0 @@ -1323,8 +1278,6 @@ Helper Classes: Digital gnuradio.digital.sd_psk_4_0x2_1_0 gnuradio.digital.sd_psk_4_0x3_1_0 gnuradio.digital.psk_constellation - gnuradio.digital.psk_mod - gnuradio.digital.psk_demod gnuradio.digital.qam_16_0x0_0_1_2_3 gnuradio.digital.qam_16_0x1_0_1_2_3 gnuradio.digital.qam_16_0x2_0_1_2_3 @@ -1345,14 +1298,8 @@ Helper Classes: Digital gnuradio.digital.make_differential_constellation gnuradio.digital.make_non_differential_constellation gnuradio.digital.qam_constellation - gnuradio.digital.qam_mod - gnuradio.digital.qam_demod gnuradio.digital.qpsk_constellation - gnuradio.digital.qpsk_mod - gnuradio.digital.qpsk_demod gnuradio.digital.dqpsk_constellation - gnuradio.digital.dqpsk_mod - gnuradio.digital.dqpsk_demod gnuradio.digital.soft_dec_table_generator gnuradio.digital.soft_dec_table gnuradio.digital.calc_soft_dec_from_table @@ -1464,13 +1411,3 @@ Helper Classes: Vocoder gnuradio.vocoder.codec2 gnuradio.vocoder.cvsd_encode_fb gnuradio.vocoder.cvsd_decode_bf - - -Helper Classes: WXGUI ---------------------- - -.. autosummary:: - :nosignatures: - - gnuradio.wxgui.oscope_sink_x - gnuradio.wxgui.histo_sink_f diff --git a/docs/sphinx/source/noaa_blocks.rst b/docs/sphinx/source/noaa_blocks.rst deleted file mode 100644 index 711ce42785..0000000000 --- a/docs/sphinx/source/noaa_blocks.rst +++ /dev/null @@ -1,8 +0,0 @@ -gnuradio.noaa -============= - -.. automodule:: gnuradio.noaa - -.. autoblock:: gnuradio.noaa.hrpt_decoder -.. autoblock:: gnuradio.noaa.hrpt_deframer -.. autoblock:: gnuradio.noaa.hrpt_pll_cf diff --git a/docs/sphinx/source/pager_blocks.rst b/docs/sphinx/source/pager_blocks.rst deleted file mode 100644 index 5eef083aa5..0000000000 --- a/docs/sphinx/source/pager_blocks.rst +++ /dev/null @@ -1,10 +0,0 @@ -gnuradio.pager -============== - -.. automodule:: gnuradio.pager - -.. autoblock:: gnuradio.pager.flex_deinterleave -.. autoblock:: gnuradio.pager.flex_frame -.. autoblock:: gnuradio.pager.flex_parse -.. autoblock:: gnuradio.pager.flex_sync -.. autoblock:: gnuradio.pager.slicer_fb diff --git a/docs/sphinx/source/wxgui.rst b/docs/sphinx/source/wxgui.rst deleted file mode 100644 index dcaa4a8e4a..0000000000 --- a/docs/sphinx/source/wxgui.rst +++ /dev/null @@ -1,5 +0,0 @@ -gnuradio.wxgui -============== - -.. autoclass:: gnuradio.wxgui.oscope_sink_x -.. autoclass:: gnuradio.wxgui.histo_sink_f diff --git a/docs/sphinx/source/wxgui_blocks.rst b/docs/sphinx/source/wxgui_blocks.rst deleted file mode 100644 index ccccd854da..0000000000 --- a/docs/sphinx/source/wxgui_blocks.rst +++ /dev/null @@ -1,7 +0,0 @@ -gnuradio.wxgui -============== - -.. automodule:: gnuradio.wxgui - -.. autoblock:: gnuradio.wxgui.histo_sink_f -.. autoblock:: gnuradio.wxgui.oscope_sink_f |