def build(self, network, extra_builders={}, extra_source_getters={}, extra_sink_getters={}, extra_connection_parameter_builders={}, extra_probe_builders={}): """Build a Network into this model. Parameters ---------- network : :py:class:`~nengo.Network` Nengo network to build. Passthrough Nodes will be removed. extra_builders : {type: fn, ...} Extra builder methods. extra_source_getters : {type: fn, ...} Extra source getter methods. extra_sink_getters : {type: fn, ...} Extra sink getter methods. extra_connection_parameter_builder : {type: fn, ...} Extra connection parameter builders. extra_probe_builders : {type: fn, ...} Extra probe builder methods. """ # Store the network config self.config = network.config # Get a clean set of builders and getters self._builders = collections_ext.mrolookupdict() self._builders.update(self.builders) self._builders.update(extra_builders) self._connection_parameter_builders = collections_ext.mrolookupdict() self._connection_parameter_builders.update( self.connection_parameter_builders ) self._connection_parameter_builders.update( extra_connection_parameter_builders ) self._source_getters = collections_ext.mrolookupdict() self._source_getters.update(self.source_getters) self._source_getters.update(extra_source_getters) self._sink_getters = collections_ext.mrolookupdict() self._sink_getters.update(self.sink_getters) self._sink_getters.update(extra_sink_getters) self._probe_builders = dict() self._probe_builders.update(self.probe_builders) self._probe_builders.update(extra_probe_builders) # Build self._build_network(network)
def build(self, network, **kwargs): """Build a Network into this model. Parameters ---------- network : :py:class:`~nengo.Network` Nengo network to build. Passthrough Nodes will be removed. """ # Store the network config self.config = network.config # Get a clean set of builders and getters self._builders = collections_ext.mrolookupdict() self._builders.update(self.builders) self._builders.update(kwargs.get("extra_builders", {})) self._transmission_parameter_builders = \ collections_ext.mrolookupdict() self._transmission_parameter_builders.update( self.transmission_parameter_builders) self._transmission_parameter_builders.update( kwargs.get("extra_transmission_parameter_builders", {})) self._source_getters = collections_ext.mrolookupdict() self._source_getters.update(self.source_getters) self._source_getters.update(kwargs.get("extra_source_getters", {})) self._reception_parameter_builders = collections_ext.mrolookupdict() self._reception_parameter_builders.update( self.reception_parameter_builders) self._reception_parameter_builders.update( kwargs.get("extra_reception_parameter_builders", {})) self._sink_getters = collections_ext.mrolookupdict() self._sink_getters.update(self.sink_getters) self._sink_getters.update(kwargs.get("extra_sink_getters", {})) self._probe_builders = dict() self._probe_builders.update(self.probe_builders) self._probe_builders.update(kwargs.get("extra_probe_builders", {})) # Build with self.decoder_cache: self._build_network(network) # Insert interposers interposers, connection_map = \ self.connection_map.insert_and_stack_interposers() self.extra_operators.extend(interposers) self.connection_map = connection_map
def build(self, network, **kwargs): """Build a Network into this model. Parameters ---------- network : :py:class:`~nengo.Network` Nengo network to build. Passthrough Nodes will be removed. """ # Store the network config self.config = network.config # Get a clean set of builders and getters self._builders = collections_ext.mrolookupdict() self._builders.update(self.builders) self._builders.update(kwargs.get("extra_builders", {})) self._transmission_parameter_builders = \ collections_ext.mrolookupdict() self._transmission_parameter_builders.update( self.transmission_parameter_builders) self._transmission_parameter_builders.update( kwargs.get("extra_transmission_parameter_builders", {})) self._source_getters = collections_ext.mrolookupdict() self._source_getters.update(self.source_getters) self._source_getters.update(kwargs.get("extra_source_getters", {})) self._reception_parameter_builders = collections_ext.mrolookupdict() self._reception_parameter_builders.update( self.reception_parameter_builders) self._reception_parameter_builders.update( kwargs.get("extra_reception_parameter_builders", {})) self._sink_getters = collections_ext.mrolookupdict() self._sink_getters.update(self.sink_getters) self._sink_getters.update(kwargs.get("extra_sink_getters", {})) self._probe_builders = dict() self._probe_builders.update(self.probe_builders) self._probe_builders.update(kwargs.get("extra_probe_builders", {})) # Build with self.decoder_cache: self._build_network(network) # Insert interposers interposers, connection_map = \ self.connection_map.insert_and_stack_interposers() self.extra_operators.extend(interposers) self.connection_map = connection_map
def build(self, network, extra_builders={}, extra_source_getters={}, extra_sink_getters={}, extra_connection_parameter_builders={}, extra_probe_builders={}, build_probes=True): """Build a Network into this model. Parameters ---------- network : :py:class:`~nengo.Network` Nengo network to build. Passthrough Nodes will be removed. build_probes : bool If True then Probes will be built, otherwise they won't and a warning will be raised. """ # Store the network config self.config = network.config # Get a clean set of builders and getters self._builders = collections_ext.mrolookupdict() self._builders.update(self.builders) self._builders.update(extra_builders) self._connection_parameter_builders = collections_ext.mrolookupdict() self._connection_parameter_builders.update( self.connection_parameter_builders ) self._connection_parameter_builders.update( extra_connection_parameter_builders ) self._source_getters = collections_ext.mrolookupdict() self._source_getters.update(self.source_getters) self._source_getters.update(extra_source_getters) self._sink_getters = collections_ext.mrolookupdict() self._sink_getters.update(self.sink_getters) self._sink_getters.update(extra_sink_getters) self._probe_builders = dict() self._probe_builders.update(self.probe_builders) self._probe_builders.update(extra_probe_builders) # Build self._build_network(network, build_probes)
def build(self, network, **kwargs): """Build a Network into this model. Parameters ---------- network : :py:class:`~nengo.Network` Nengo network to build. Passthrough Nodes will be removed. """ # Store the network config self.config = network.config # Get a clean set of builders and getters self._builders = collections_ext.mrolookupdict() self._builders.update(self.builders) self._builders.update(kwargs.get("extra_builders", {})) self._transmission_parameter_builders = \ collections_ext.mrolookupdict() self._transmission_parameter_builders.update( self.transmission_parameter_builders) self._transmission_parameter_builders.update( kwargs.get("extra_transmission_parameter_builders", {})) self._source_getters = collections_ext.mrolookupdict() self._source_getters.update(self.source_getters) self._source_getters.update(kwargs.get("extra_source_getters", {})) self._reception_parameter_builders = collections_ext.mrolookupdict() self._reception_parameter_builders.update( self.reception_parameter_builders) self._reception_parameter_builders.update( kwargs.get("extra_reception_parameter_builders", {})) self._sink_getters = collections_ext.mrolookupdict() self._sink_getters.update(self.sink_getters) self._sink_getters.update(kwargs.get("extra_sink_getters", {})) self._probe_builders = dict() self._probe_builders.update(self.probe_builders) self._probe_builders.update(kwargs.get("extra_probe_builders", {})) # Build self._build_network(network)
def test_mrolookupdict(): """Test a dictionary which will look up items by going through their MROs. """ class ParentA(object): pass class ChildA(ParentA): pass mdict = nscollections.mrolookupdict() mdict[ParentA] = 5 assert mdict[ChildA] == 5 mdict[ChildA] = 10 assert mdict[ChildA] == 10 # Objects not in the dictionary raise KeyErrors with pytest.raises(KeyError): mdict[object]
def test_mrolookupdict(): """Test a dictionary which will look up items by going through their MROs. """ class ParentA(object): pass class ChildA(ParentA): pass mdict = nscollections.mrolookupdict() mdict[ParentA] = 5 assert mdict[ChildA] == 5 mdict[ChildA] = 10 assert mdict[ChildA] == 10 # Objects not in the dictionary raise KeyErrors with pytest.raises(KeyError): mdict[object]