commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 19/101: grc-refactor: block documentation p


From: git
Subject: [Commit-gnuradio] [gnuradio] 19/101: grc-refactor: block documentation prop
Date: Thu, 16 Mar 2017 14:57:59 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch python3
in repository gnuradio.

commit 38dc5e454b78b0f3e7e8af40c4b6e2a6cb15eec9
Author: Sebastian Koslowski <address@hidden>
Date:   Wed Jun 15 11:32:22 2016 -0700

    grc-refactor: block documentation prop
---
 grc/core/Block.py          | 60 ++++++++++++++++++++++++++--------------------
 grc/gui/BlockTreeWindow.py |  4 ++--
 grc/gui/PropsDialog.py     |  2 +-
 3 files changed, 37 insertions(+), 29 deletions(-)

diff --git a/grc/core/Block.py b/grc/core/Block.py
index 8296659..91bbeec 100644
--- a/grc/core/Block.py
+++ b/grc/core/Block.py
@@ -60,7 +60,7 @@ class Block(Element):
         Make a new block from nested data.
 
         Args:
-            flow: graph the parent element
+            flow_graph: the parent element
             n: the nested odict
 
         Returns:
@@ -172,14 +172,8 @@ class Block(Element):
             ports.append(port)
         return ports
 
-    def validate(self):
-        """
-        Validate this block.
-        Call the base class validate.
-        Evaluate the checks: each check must evaluate to True.
-        """
-        Element.validate(self)
-        # Evaluate the checks
+    def _run_checks(self):
+        """Evaluate the checks"""
         for check in self._checks:
             check_res = self.resolve_dependencies(check)
             try:
@@ -188,16 +182,8 @@ class Block(Element):
             except:
                 self.add_error_message('Check "{}" did not 
evaluate.'.format(check))
 
-        # For variables check the value (only if var_value is used
-        if self.is_variable and self._var_value != '$value':
-            value = self._var_value
-            try:
-                value = self.get_var_value()
-                self.parent.evaluate(value)
-            except Exception as err:
-                self.add_error_message('Value "{}" cannot be 
evaluated:\n{}'.format(value, err))
-
-        # check if this is a GUI block and matches the selected generate option
+    def _validate_generate_mode_compat(self):
+        """check if this is a GUI block and matches the selected generate 
option"""
         current_generate_option = self.parent.get_option('generate_options')
 
         def check_generate_mode(label, flag, valid_options):
@@ -211,6 +197,27 @@ class Block(Element):
 
         check_generate_mode('WX GUI', BLOCK_FLAG_NEED_WX_GUI, ('wx_gui',))
         check_generate_mode('QT GUI', BLOCK_FLAG_NEED_QT_GUI, ('qt_gui', 
'hb_qt_gui'))
+
+    def _validate_var_value(self):
+        """or variables check the value (only if var_value is used)"""
+        if self.is_variable and self._var_value != '$value':
+            value = self._var_value
+            try:
+                value = self.get_var_value()
+                self.parent.evaluate(value)
+            except Exception as err:
+                self.add_error_message('Value "{}" cannot be 
evaluated:\n{}'.format(value, err))
+
+    def validate(self):
+        """
+        Validate this block.
+        Call the base class validate.
+        Evaluate the checks: each check must evaluate to True.
+        """
+        Element.validate(self)
+        self._run_checks()
+        self._validate_generate_mode_compat()
+        self._validate_var_value()
         if self._epy_reload_error:
             
self.get_param('_source_code').add_error_message(str(self._epy_reload_error))
 
@@ -252,13 +259,6 @@ class Block(Element):
                 port._key = str(domain_specific_port_index[domain])
                 domain_specific_port_index[domain] += 1
 
-    def get_doc(self):
-        documentation = self.parent_platform.block_docstrings.get(self._key, 
{})
-        from_xml = self._doc.strip()
-        if from_xml:
-            documentation[''] = from_xml
-        return documentation
-
     def get_imports(self, raw=False):
         """
         Resolve all import statements.
@@ -396,6 +396,14 @@ class Block(Element):
         update_ports('out', self.get_sources(), blk_io.sources, 'source')
         self.rewrite()
 
+    @property
+    def documentation(self):
+        documentation = 
self.parent_platform.block_docstrings.get(self.get_key(), {})
+        from_xml = self._doc.strip()
+        if from_xml:
+            documentation[''] = from_xml
+        return documentation
+
     # Main functions to get and set the block state
     # Also kept get_enabled and set_enabled to keep compatibility
     @property
diff --git a/grc/gui/BlockTreeWindow.py b/grc/gui/BlockTreeWindow.py
index 89aac53..d62fedf 100644
--- a/grc/gui/BlockTreeWindow.py
+++ b/grc/gui/BlockTreeWindow.py
@@ -178,7 +178,7 @@ class BlockTreeWindow(Gtk.VBox):
         iter_ = treestore.insert_before(categories[category], None)
         treestore.set_value(iter_, NAME_INDEX, block.get_name())
         treestore.set_value(iter_, KEY_INDEX, block.get_key())
-        treestore.set_value(iter_, DOC_INDEX, _format_doc(block.get_doc()))
+        treestore.set_value(iter_, DOC_INDEX, _format_doc(block.documentation))
 
     def update_docs(self):
         """Update the documentation column of every block"""
@@ -188,7 +188,7 @@ class BlockTreeWindow(Gtk.VBox):
                 return  # category node, no doc string
             key = model.get_value(iter_, KEY_INDEX)
             block = self.platform.blocks[key]
-            model.set_value(iter_, DOC_INDEX, _format_doc(block.get_doc()))
+            model.set_value(iter_, DOC_INDEX, _format_doc(block.documentation))
 
         self.treestore.foreach(update_doc)
         self.treestore_search.foreach(update_doc)
diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py
index f87ca6e..1526812 100644
--- a/grc/gui/PropsDialog.py
+++ b/grc/gui/PropsDialog.py
@@ -193,7 +193,7 @@ class PropsDialog(Gtk.Dialog):
         buf.delete(buf.get_start_iter(), buf.get_end_iter())
         pos = buf.get_end_iter()
 
-        docstrings = self._block.get_doc()
+        docstrings = self._block.documentation
         if not docstrings:
             return
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]