# Requirements for runtime.
pydantic-settings

python-Levenshtein
scikit-learn
filelock
loguru
psutil
fire
fuzzywuzzy
openai
litellm>=1.83.14  # to support `from litellm import get_valid_models`
aiohttp>=3.13.4  # CVE-2026-22815, CVE-2026-34515, CVE-2026-34516, CVE-2026-34525; >=3.13.4 due to litellm==1.83.14 exact pin
azure.identity
pyarrow
rich
tqdm
typer

numpy # we use numpy as default data format. So we have to install numpy
pandas # we use pandas as default data format. So we have to install pandas
pandarallel # parallelize pandas
matplotlib
langchain
langchain-community
tiktoken
pymupdf  # Extract shotsreens from pdf

# PDF related
pypdf
azure-ai-formrecognizer

# factor implementations
tables

# CI Fix Tool
tree-sitter-python
tree-sitter

python-dotenv>=1.2.2  # CVE: symlink following allows arbitrary file overwrite

# infrastructure related.
docker

# crawler related
webdriver-manager

# demo related
streamlit>=1.47  # to support  input_c.text_area(..., height="content", ...)
plotly
st-theme
randomname
flask
flask-cors
networkx

# kaggle crawler
selenium
kaggle
nbformat # also used for notebook conversion

# tool
setuptools-scm
seaborn
azure.ai.inference

# data folder desc
humanize
genson

# mlflow
mlflow
azureml-mlflow
types-pytz

# Agent
pydantic-ai-slim[mcp,openai,prefect]
nest-asyncio

# visualize SFT train
tensorboard     # tensorboard --logdir git_ignore_folder/RD-Agent_workspace
prefect

# HuggingFace datasets
datasets

# DuckDuckGo search
duckduckgo-search

# Testing
pytest
pytest-cov

# Parameter Optimization
optuna>=3.5.0

# News & Data (Polymarket, ForexFactory, CryptoPanic)
beautifulsoup4>=4.12.0

# ML Training Pipeline
lightgbm>=3.3.5
scipy>=1.15.3

# RL Trading (optional - system works without these)
# Install for full RL training: pip install stable-baselines3[extra] gymnasium
# Without these, RL trading uses simple momentum fallback
# stable-baselines3[extra]>=2.0.0
# gymnasium>=0.29.0