3cc8e948630b80ddc0b4eb0cdef664582d84bc9d
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. - Лицензия — не выбрана.
Languages
Python
77.4%
PowerShell
12.1%
Shell
10.5%