def __init__(self, id_, name, inbound_ports, outbound_ports, bidirectional_ports, version=None):

        assert type(id_) is str, 'Network id must be a string'
        assert type(name) is str, 'Network name must be a string'
        assert type(inbound_ports) is list, 'Inbound ports must be a list'
        assert type(outbound_ports) is list, 'Outbound network ports must be a list'
        assert type(bidirectional_ports) is list, 'Bidirectional network ports must be a list'
        assert not id_.startswith('urn:'), id_ % 'URNs are not used in core OpenNSA NML (id: %s)'

        # we should perhaps check that no ports has the same name

        self.id_                 = id_           # String  ; the urn of the network topology
        self.name                = name          # String  ; just base name, no prefix or URI stuff
        self.inbound_ports       = inbound_ports or []
        self.outbound_ports      = outbound_ports or []
        self.bidirectional_ports = bidirectional_ports or []
        self.version             = version or datetime.datetime.utcnow().replace(microsecond=0)
dataset/ETHPy150Open NORDUnet/opennsa/opennsa/topology/nml.py/Network.__init__/swapped operands of `%`