summaryrefslogtreecommitdiff
path: root/grc/python/Platform.py
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2015-08-18 16:47:41 +0200
committerSebastian Koslowski <koslowski@kit.edu>2015-11-13 21:47:58 +0100
commitd15065de35a535eae9448dff60270053f35885bd (patch)
treef44d59c1ba0875eb0ddafdb4e81f78d3afec77e1 /grc/python/Platform.py
parentf7add89403edcfdf8baa59c80b3e1d2b5c4ee307 (diff)
grc: move docstring extraction into subprocess
Diffstat (limited to 'grc/python/Platform.py')
-rw-r--r--grc/python/Platform.py40
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
##############################################