def __new__(cls, name, bases, ns):
        key = (cls, name, bases)

        try:
            return cls.__cache__[key]
        except __HOLE__:
            cls = type.__new__(cls, name, bases, ns)

            setattr(cls, "name", ns.get("name", cls.__name__))

            return cls
dataset/ETHPy150Open circuits/circuits/circuits/core/events.py/EventType.__new__