Я хочу написать калькулятор с solid. У меня нету нарушений по поводу solid?

# Калькулятор SOLID

# Импорты
import abc
import os

# Переменные
MENU = """Калькулятор!
1. Сложение  [+]
2. Вычитание [-]
3. Умножение [*]
4. Деление   [/]
5. Нахождение процента от числа [%]
6. История вычислений

0. Выход
"""

# Основной код программы
class BaseOperation(abc.ABC):
    def __init__(self, num_one: int | float, num_two: int | float) -> None:
        self._num_one = num_one
        self._num_two = num_two
    
    def math_operation(self) -> int | float:
        pass

# +
class Addition(BaseOperation):
    def __init__(self, num_one: int | float, num_two: int | float) -> None:
        super().__init__(num_one, num_two)
    
    def math_operation(self) -> int | float:
        return self._num_one + self._num_two

# -
class Subtraction(BaseOperation):
    def __init__(self, num_one: int | float, num_two: int | float) -> None:
        super().__init__(num_one, num_two)
    
    def math_operation(self) -> int | float:
        return self._num_one - self._num_two

# *
class Multiplication(BaseOperation):
    def __init__(self, num_one: int | float, num_two: int | float) -> None:
        super().__init__(num_one, num_two)
    
    def math_operation(self) -> int | float:
        return self._num_one * self._num_two

# /
class Division(BaseOperation):
    def __init__(self, num_one: int | float, num_two: int | float) -> None:
        super().__init__(num_one, num_two)
    
    def math_operation(self) -> int | float:
        return self._num_one / self._num_two

# %
class PercentageCalculator(BaseOperation):
    def __init__(self, num_one: int | float, num_two: int | float) -> None:
        super().__init__(num_one, num_two)
    
    def math_operation(self) -> int | float:
        return (self._num_one / self._num_two) * 100

def clear_console():
    os.system("cls")

def Calculator(user_choice_operation, num_one, num_two) -> str | int | float:
    if user_choice_operation == "1":
        addition = Addition(num_one, num_two).math_operation()
        return addition

    elif user_choice_operation == "2":
        pass

    elif user_choice_operation == "3":
        pass

    elif user_choice_operation == "4":
        pass

    elif user_choice_operation == "5":
        pass

    elif user_choice_operation == "6":
        pass

def Defining_operation(user_choice_operation):
    if user_choice_operation == "1":
        return "Сложение"

    elif user_choice_operation == "2":
        return "Вычитание"

    elif user_choice_operation == "3":
        return "Умножение"

    elif user_choice_operation == "4":
        return "Деление"

    elif user_choice_operation == "5":
        return "Процент от числа"
    
    elif user_choice_operation == "6":
        return "История вычислений:"
    


def main() -> None:
    user_choice_operation = int()
    while user_choice_operation != "0":
        user_choice_operation = input(f"{MENU}\nВыберите пункт меню: ")

        operation = Defining_operation(user_choice_operation)
        if operation != None:
            clear_console()

            print(f"Выбранная операция: {operation}")
            num_one, num_two = map(float, input("Введите 2 числа через пробел: ").split())

            result = Calculator(user_choice_operation, num_one, num_two)
            print(f"\nРезультат вычислений: {result}")
            input("\nНажмите любую кнопку чтобы продолжить...")

            clear_console()
        
        else:
            clear_console()
            print("⚠️  Такой пункта нет.\n")
if __name__ == "__main__":
    main()