summaryrefslogtreecommitdiff
path: root/grc/core/Connection.py
diff options
context:
space:
mode:
Diffstat (limited to 'grc/core/Connection.py')
-rw-r--r--grc/core/Connection.py24
1 files changed, 11 insertions, 13 deletions
diff --git a/grc/core/Connection.py b/grc/core/Connection.py
index 7820603360..aec7a217b3 100644
--- a/grc/core/Connection.py
+++ b/grc/core/Connection.py
@@ -56,7 +56,10 @@ class Connection(Element):
if connection.source_port is source and connection.sink_port is sink:
raise LookupError('This connection between source and sink is not unique.')
- self._make_bus_connect()
+ if self.is_bus():
+ self._make_bus_connect()
+ else:
+ self.parent_flowgraph.connect(source, sink)
@staticmethod
def _get_sink_source(porta, portb):
@@ -82,7 +85,7 @@ class Connection(Element):
return self.source_port.get_type() == self.sink_port.get_type() == 'msg'
def is_bus(self):
- return self.source_port.get_type() == self.sink_port.get_type() == 'bus'
+ return self.source_port.get_type() == 'bus'
def validate(self):
"""
@@ -159,18 +162,13 @@ class Connection(Element):
def _make_bus_connect(self):
source, sink = self.source_port, self.sink_port
- if (source.get_type() == 'bus') != (sink.get_type() == 'bus'):
+ if source.get_type() == sink.get_type() == 'bus':
raise ValueError('busses must get with busses')
- if not len(source.get_associated_ports()) == len(sink.get_associated_ports()):
+ sources = source.get_associated_ports()
+ sinks = sink.get_associated_ports()
+ if len(sources) != len(sinks):
raise ValueError('port connections must have same cardinality')
- if source.get_type() == 'bus':
- sources = source.get_associated_ports()
- sinks = sink.get_associated_ports()
-
- for i in range(len(sources)):
- try:
- self.parent_flowgraph.connect(sources[i], sinks[i])
- except:
- pass
+ for ports in zip(sources, sinks):
+ self.parent_flowgraph.connect(*ports)