diff options
author | Johnathan Corgan <johnathan@corganlabs.com> | 2016-11-27 14:38:38 -0800 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2016-11-27 14:38:38 -0800 |
commit | 521729b2ccb483cbccf83fb23ffbdecbb68ad8df (patch) | |
tree | c767b47fb7d280828aa92ff4a3704a9ee0151e0d /grc | |
parent | e28e7d0ddc46ebe2a70e67420f243b0f5eedb281 (diff) | |
parent | db1a0a96785577c20dd254e6825eac050cf4d59b (diff) |
Merge branch 'master' into next
Diffstat (limited to 'grc')
-rw-r--r-- | grc/core/Block.py | 5 | ||||
-rw-r--r-- | grc/core/utils/epy_block_io.py | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/grc/core/Block.py b/grc/core/Block.py index de1d83ee9a..fba9371963 100644 --- a/grc/core/Block.py +++ b/grc/core/Block.py @@ -461,10 +461,11 @@ class Block(Element): iter_ports = iter(ports) ports_new = [] port_current = next(iter_ports, None) - for key, port_type in port_specs: + for key, port_type, vlen in port_specs: reuse_port = ( port_current is not None and port_current.get_type() == port_type and + port_current.get_vlen() == vlen and (key.isdigit() or port_current.get_key() == key) ) if reuse_port: @@ -475,6 +476,8 @@ class Block(Element): if port_type == 'message': n['name'] = key n['optional'] = '1' + if vlen > 1: + n['vlen'] = str(vlen) port = platform.Port(block=self, n=n, dir=direction) ports_new.append(port) # replace old port list with new one diff --git a/grc/core/utils/epy_block_io.py b/grc/core/utils/epy_block_io.py index 4eb4d6d4e5..53a1bb3c72 100644 --- a/grc/core/utils/epy_block_io.py +++ b/grc/core/utils/epy_block_io.py @@ -17,14 +17,15 @@ BlockIO = collections.namedtuple('BlockIO', 'name cls params sinks sources doc c def _ports(sigs, msgs): ports = list() for i, dtype in enumerate(sigs): - port_type = TYPE_MAP.get(dtype.name, None) + port_type = TYPE_MAP.get(dtype.base.name, None) if not port_type: raise ValueError("Can't map {0!r} to GRC port type".format(dtype)) - ports.append((str(i), port_type)) + vlen = dtype.shape[0] if len(dtype.shape) > 0 else 1 + ports.append((str(i), port_type, vlen)) for msg_key in msgs: if msg_key == 'system': continue - ports.append((msg_key, 'message')) + ports.append((msg_key, 'message', None)) return ports @@ -122,4 +123,3 @@ class blk(gr.sync_block): """ from pprint import pprint pprint(dict(extract(blk_code)._asdict())) - |