:py:mod:`kosmos.topology.net` ============================= .. py:module:: kosmos.topology.net Classes ------- .. py:class:: Network Network that stores nodes and links. | .. rubric:: Methods .. py:method:: add_node(node: kosmos.topology.node.Node) -> None Add a node to the network. :param node: Node instance to insert. :type node: Node .. py:method:: add_link(link: kosmos.topology.link.Link) -> None Add a link to the network. Both endpoints of the link must be present in the network. :param link: Link instance to insert. :type link: Link .. py:method:: get_node(node_id: kosmos.topology.node.NodeId | str) -> kosmos.topology.node.Node | None Node by id. :param node_id: Identifier of the node. :type node_id: NodeId | str :returns: The node if present, else None. :rtype: Node | None .. py:method:: get_link(link_id: kosmos.topology.link.LinkId | str) -> kosmos.topology.link.Link | None Link by id. :param link_id: Identifier of the link. :type link_id: LinkId | str :returns: The link if present, else None. :rtype: Link | None .. py:method:: nodes() -> collections.abc.Iterable[kosmos.topology.node.Node] Iterate over all nodes. :returns: Iterator over nodes. :rtype: Iterable[Node] .. py:method:: links() -> collections.abc.Iterable[kosmos.topology.link.Link] Iterate over all links. :returns: Iterator over links. :rtype: Iterable[Link] .. py:method:: outgoing_links(node: kosmos.topology.typing.NodeReference) -> collections.abc.Iterable[kosmos.topology.link.Link] Outgoing links of a node. :param node: The node or its id. :type node: NodeReference :returns: Outgoing links of the node. :rtype: Iterable[Link] .. py:method:: incoming_links(node: kosmos.topology.typing.NodeReference) -> collections.abc.Iterable[kosmos.topology.link.Link] Incoming links of a node. :param node: The node or its id. :type node: NodeReference :returns: Incoming links of the node. :rtype: Iterable[Link] .. py:method:: validate_node(node: kosmos.topology.typing.NodeReference) -> kosmos.topology.node.Node Get the node for a node reference if it is valid, else raise. :param node: The node or its id. :type node: NodeReference :returns: The valid node. :rtype: Node .. py:method:: validate_link(link: kosmos.topology.typing.LinkReference) -> kosmos.topology.link.Link Get the link for a link reference if it is valid, else raise. :param link: The link or its id. :type link: LinkReference :returns: The valid link. :rtype: Link