/
Boris388
/
git_test1
Обзор
Документация
Войти
/
Boris388
/
git_test1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
models.py
29 строк
1 KB
Boris
added models, analysis and storage
08 янв 2026, 13:15
08 янв 2026, 13:15
3d0fe67
Код
Авторство
О чём код?
from datetime import datetime class Category: def __init__(self, name: str): self.name = name.strip() class Transaction: def __init__(self, amount: float, date: str, category: Category, comment: str = "", is_income: bool = True): self.amount = self._validate_amount(amount) self.date = self._validate_date(date) self.category = category self.comment = comment.strip() self.is_income = is_income def _validate_amount(self, amount: float) -> float: try: amt = float(amount) if amt <= 0: raise ValueError("Сумма должна быть положительной") return round(amt, 2) except (ValueError, TypeError): raise ValueError("Сумма должна быть числом > 0") def _validate_date(self, date: str) -> str: try: dt = datetime.strptime(date, "%d-%m-%Y") return dt.strftime("%d-%m-%Y") except ValueError: raise ValueError("Дата должна быть в формате ДД-ММ-ГГГГ")