2026-08-07 22:30:19 +03:00
2026-08-07 22:30:19 +03:00
2026-07-22 12:40:42 +03:00
2026-07-22 12:40:42 +03:00
2026-07-22 12:40:42 +03:00
2026-07-22 12:40:42 +03:00
2026-07-22 12:40:42 +03:00
2026-07-12 19:46:07 +03:00
2026-07-22 12:40:42 +03:00
2026-07-22 12:40:42 +03:00
2026-07-12 19:25:40 +03:00
2026-08-07 22:30:19 +03:00
2026-08-07 22:30:19 +03:00
2026-07-22 12:40:42 +03:00
2026-07-12 19:51:00 +03:00
2026-07-12 19:51:00 +03:00

CashFlow Forecast

Личная финансовая модель с прогнозом денежных потоков, сценарным анализом и AI-ассистентом.

Python + JSON + Excel + AI.

Установка

git clone <repo>
cd cashflow-forecast
python -m venv .venv
source .venv/bin/activate    # Linux/Mac
# .venv\Scripts\activate     # Windows
pip install -e .

Использование

# Инициализация пустой модели
cf init

# Прогноз на 12 месяцев
cf forecast --months 12

# Сценарии
cf scenario baseline
cf scenario optimistic
cf scenario pessimistic

# What-if анализ
cf whatif --income 1.2 --expense 0.9 --growth 1.0 --months 12

# Сравнение всех сценариев
cf compare --months 12

# Импорт/экспорт Excel
cf import data.xlsx
cf export exports/report.xlsx

# AI-анализ (заглушка, генерация промпта)
cf analyze

Пример: создание тестовых данных

Подготовьте Excel-файл с листами: Accounts, Transactions, Recurring, Assets, Liabilities. Заголовки колонок соответствуют полям моделей. Затем импортируйте:

cf import my_finances.xlsx
cf forecast --months 12

Структура проекта

├── cashflow_model/         # Модели данных (dataclass + JSON)
│   ├── account.py          # Account
│   ├── transaction.py      # Transaction
│   ├── recurring.py        # RecurringCashflow
│   ├── asset.py            # Asset
│   ├── liability.py        # Liability
│   ├── scenario.py         # ForecastScenario
│   └── model.py            # FinancialModel (корень, save/load JSON)
├── engine/                 # Вычислительное ядро
│   ├── forecast.py         # ForecastService — прогноз
│   └── scenarios.py        # ScenarioService — сценарии + what-if
├── sync/                   # Синхронизация с Excel
│   └── excel_sync.py       # ExcelSync — import/export .xlsx
├── ai/                     # AI-ассистент
│   ├── prompts.py          # Шаблоны промптов
│   └── assistant.py        # AssistantService (заглушка)
├── cli/                    # CLI (Typer)
│   └── main.py             # Команды: cf init/forecast/scenario/...
├── tests/                  # Тесты pytest
│   ├── conftest.py         # Фикстуры
│   ├── test_model.py
│   ├── test_forecast.py
│   ├── test_scenarios.py
│   ├── test_excel_sync.py
│   ├── test_ai.py
│   └── test_cli.py
├── data/                   # JSON-модели
├── exports/                # Экспортированные .xlsx
├── .agent/                 # Артефакты MetaAgent (планирование)
├── pyproject.toml          # Зависимости и конфигурация
└── README.arch.md          # Оригинальная архитектурная концепция

Разработка

# Тесты
pytest

# Линтер
ruff check .

# Автоформат
ruff format .

Зависимости

  • Python >= 3.11
  • openpyxl — работа с Excel
  • typer — CLI
  • rich — форматирование вывода
  • pytest — тесты
  • ruff — линтер

Известные ограничения (MVP)

  • AI-ассистент — заглушка. Промпты готовы, но не подключены к API.
  • База данных — JSON-файлы (не подходит для многопользовательской работы).
  • Excel — только .xlsx через openpyxl.
  • Лицензия — не выбрана.
S
Description
No description provided
Readme
296 KiB
Languages
Python 77.4%
PowerShell 12.1%
Shell 10.5%