/
Boris388
/
git_test1
Обзор
Документация
Войти
/
Boris388
/
git_test1
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
storage.py
52 строки
2 KB
Boris
added models, analysis and storage
08 янв 2026, 13:15
08 янв 2026, 13:15
3d0fe67
Код
Авторство
О чём код?
import csv import os from models import Transaction, Category DATA_FILE = "transactions.csv" def init_storage(): if not os.path.exists("data"): os.makedirs("data") if not os.path.isfile(DATA_FILE): with open(DATA_FILE, "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow(["amount", "date", "category", "comment", "is_income"]) def load_transactions() -> list[Transaction]: transactions = [] try: with open(DATA_FILE, "r", encoding="utf-8") as f: reader = csv.DictReader(f) for row in reader: if not row: continue category = Category(row["category"]) tx = Transaction( amount=row["amount"], date=row["date"], category=category, comment=row["comment"], is_income=row["is_income"] == "True" ) transactions.append(tx) except FileNotFoundError: init_storage() except Exception as e: print(f"Ошибка при загрузке данных: {e}") return transactions def save_transactions(transactions: list[Transaction]): try: with open(DATA_FILE, "w", newline="", encoding="utf-8") as f: writer = csv.writer(f) writer.writerow(["amount", "date", "category", "comment", "is_income"]) for tx in transactions: writer.writerow([ tx.amount, tx.date, tx.category.name, tx.comment, tx.is_income ]) except Exception as e: print(f"Ошибка при сохранении данных: {e}")