from typing import List from .valuetype import ValueType class MethodArgument: __slots__ = ('name', 'value_type', ) name: str value_type: ValueType def __init__(self, name: str, value_type: ValueType) -> None: self.name = name self.value_type = value_type class Method: __slots__ = ('name', 'args', 'return_type', ) name: str args: List[MethodArgument] return_type: ValueType def __init__(self, name: str, args: List[MethodArgument], return_type: ValueType) -> None: self.name = name self.args = args self.return_type = return_type