summaryrefslogtreecommitdiff
path: root/grc/python
diff options
context:
space:
mode:
authorJosh Blum2009-08-26 13:29:28 -0700
committerJosh Blum2009-08-26 13:29:28 -0700
commitdc9e9db16047ec589a7b0488fac04c5bb682903c (patch)
tree1a97913e4f1ab6acd0627757f034ee6c9eb4672f /grc/python
parent854bed10dfb61e9f9feab5259a75e809941089ab (diff)
downloadgnuradio-dc9e9db16047ec589a7b0488fac04c5bb682903c.tar.gz
gnuradio-dc9e9db16047ec589a7b0488fac04c5bb682903c.tar.bz2
gnuradio-dc9e9db16047ec589a7b0488fac04c5bb682903c.zip
added rewrite methods to element to separate from validation logic
Diffstat (limited to 'grc/python')
-rw-r--r--grc/python/Block.py7
-rw-r--r--grc/python/Port.py14
2 files changed, 14 insertions, 7 deletions
diff --git a/grc/python/Block.py b/grc/python/Block.py
index 47fe13a3c..f47f76446 100644
--- a/grc/python/Block.py
+++ b/grc/python/Block.py
@@ -54,7 +54,6 @@ class Block(_Block):
Validate this block.
Call the base class validate.
Evaluate the checks: each check must evaluate to True.
- Adjust the nports.
"""
_Block.validate(self)
#evaluate the checks
@@ -65,6 +64,12 @@ class Block(_Block):
try: assert check_eval
except AssertionError: self.add_error_message('Check "%s" failed.'%check)
except: self.add_error_message('Check "%s" did not evaluate.'%check)
+
+ def rewrite(self):
+ """
+ Add and remove ports to adjust for the nports.
+ """
+ _Block.rewrite(self)
#adjust nports
for get_ports, get_port in (
(self.get_sources, self.get_source),
diff --git a/grc/python/Port.py b/grc/python/Port.py
index bfbac7237..dde736dba 100644
--- a/grc/python/Port.py
+++ b/grc/python/Port.py
@@ -57,17 +57,19 @@ class Port(_Port):
except AssertionError: self.add_error_message('Port is not connected.')
try: assert self.is_source() or len(self.get_enabled_connections()) <= 1
except AssertionError: self.add_error_message('Port has too many connections.')
- ################################################################
- # message port logic
- ################################################################
+ #message port logic
if self.get_type() == 'msg':
try: assert not self.get_nports()
except AssertionError: self.add_error_message('A port of type "msg" cannot have "nports" set.')
try: assert self.get_vlen() == 1
except AssertionError: self.add_error_message('A port of type "msg" must have a "vlen" of 1.')
- ################################################################
- # virtual sink logic
- ################################################################
+
+ def rewrite(self):
+ """
+ Handle the port cloning for virtual blocks.
+ """
+ _Port.rewrite(self)
+ #virtual sink logic
if self.get_parent().get_key() == 'virtual_sink':
if self.get_enabled_connections(): #clone type and vlen
source = self.get_enabled_connections()[0].get_source()