Source code for pytwinnet.core.network
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Dict, Iterable, Optional, List
from .node import WirelessNode
[docs]
@dataclass
class Network:
nodes: Dict[str, WirelessNode] = field(default_factory=dict)
[docs]
def add_node(self, node: WirelessNode) -> None:
self.nodes[node.node_id] = node
[docs]
def remove_node(self, node_id: str) -> None:
if node_id in self.nodes:
del self.nodes[node_id]
[docs]
def get_node_by_id(self, node_id: str) -> Optional[WirelessNode]:
return self.nodes.get(node_id)
[docs]
def list_nodes(self) -> List[WirelessNode]:
return list(self.nodes.values())
def __iter__(self) -> Iterable[WirelessNode]:
return iter(self.nodes.values())