Node.py 785 bytes
# -*- coding: utf-8 -*-

from model.network.Point import Point

class Node(object):
    def __init__(self, id:str, name:str,
                 x:float = 0.0, y:float = 0.0):
        super(Node, self).__init__()

        self.id = id
        self.name = name
        self.pos = Point(x, y)

    def __repr__(self):
        return f"Node {{id: {self.id}, name: {self.name}}}"

    def __getitem__(self, name):
        ret = None

        if name == "name":
            ret = self.name
        elif name == "id":
            ret = self.id
        elif name == "pos":
            ret = f"({self.pos.x},{self.pos.y})"

        return ret

    def __setitem__(self, name, value):
        if name == "name":
            self.name = value
        elif name == "id":
            self.id = value