diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2015-08-18 16:47:41 +0200 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2015-11-13 21:47:58 +0100 |
commit | d15065de35a535eae9448dff60270053f35885bd (patch) | |
tree | f44d59c1ba0875eb0ddafdb4e81f78d3afec77e1 /grc/python/Platform.py | |
parent | f7add89403edcfdf8baa59c80b3e1d2b5c4ee307 (diff) |
grc: move docstring extraction into subprocess
Diffstat (limited to 'grc/python/Platform.py')
-rw-r--r-- | grc/python/Platform.py | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/grc/python/Platform.py b/grc/python/Platform.py index 1497099f3f..56986773b5 100644 --- a/grc/python/Platform.py +++ b/grc/python/Platform.py @@ -24,22 +24,24 @@ from gnuradio import gr from .. base.Platform import Platform as _Platform from .. gui.Platform import Platform as _GUIPlatform -from FlowGraph import FlowGraph as _FlowGraph -from Connection import Connection as _Connection -from Block import Block as _Block -from Port import Port as _Port -from Param import Param as _Param -from Generator import Generator -from Constants import ( + +from . import extract_docs +from .FlowGraph import FlowGraph as _FlowGraph +from .Connection import Connection as _Connection +from .Block import Block as _Block +from .Port import Port as _Port +from .Param import Param as _Param +from .Generator import Generator +from .Constants import ( HIER_BLOCKS_LIB_DIR, BLOCK_DTD, DEFAULT_FLOW_GRAPH, BLOCKS_DIRS, PREFS_FILE, PREFS_FILE_OLD, CORE_TYPES ) - COLORS = [(name, color) for name, key, sizeof, color in CORE_TYPES] class Platform(_Platform, _GUIPlatform): + def __init__(self): """ Make a platform for gnuradio. @@ -49,6 +51,17 @@ class Platform(_Platform, _GUIPlatform): os.mkdir(HIER_BLOCKS_LIB_DIR) if not os.path.exists(os.path.dirname(PREFS_FILE)): os.mkdir(os.path.dirname(PREFS_FILE)) + + self.block_docstrings = block_docstrings = dict() + + def setter(key, docs): + block_docstrings[key] = '\n\n'.join( + '--- {0} ---\n{1}\n'.format(b, d.replace('\n\n', '\n')) + for b, d in docs.iteritems() if d is not None + ) + + self._docstring_extractor = extract_docs.SubprocessLoader(setter) + # init _Platform.__init__( self, @@ -80,6 +93,17 @@ class Platform(_Platform, _GUIPlatform): except Exception as e: print >> sys.stderr, e + def load_blocks(self): + self._docstring_extractor.start() + _Platform.load_blocks(self) + self._docstring_extractor.finish() + self._docstring_extractor.wait() + + def load_block_xml(self, xml_file): + block = _Platform.load_block_xml(self, xml_file) + self._docstring_extractor.query(block.get_key()) + return block + ############################################## # Constructors ############################################## |