# =============================================================================
# SPARC — Semiconductor Physics Analysis and Research Code
# Fichier dependencies exhaustif (pour Ubuntu/Debian sans Docker)
# =============================================================================
# Généré le : 2026-04-16
# Source : analyse静态 du code source (simulations/, web/, optimization/, etc.)
# =============================================================================

# -----------------------------------------------------------------------------
# 1. Core Scientifique — Simulations physiques (Sesame)
# -----------------------------------------------------------------------------
numpy>=1.20.0
scipy>=1.7.0
matplotlib>=3.4.0
seaborn>=0.11.0
plotly>=5.0.0
pandas>=1.3.0
numba>=0.54.0
uncertainties>=3.1.0

# -----------------------------------------------------------------------------
# 2. Framework Web — Flask + extensions
# -----------------------------------------------------------------------------
flask>=2.0.0
jinja2>=3.0.0
markupsafe>=2.0.0
werkzeug>=2.0.0
itsdangerous>=2.0.0
click>=8.0.0

# Utilitaires Flask
python-dotenv>=0.19.0          # chargement .env
jsonschema>=4.0.0              # validation JSON (configs)
flask-cors>=4.0.0              # CORS headers (optionnel mais installé)
flasgger>=0.9.5                # Documentation API Swagger/OpenAPI (/api/docs/)

# -----------------------------------------------------------------------------
# 3. CLI Interactif — Interface terminal Rich
# -----------------------------------------------------------------------------
rich>=13.0.0
questionary>=2.0.0
prompt_toolkit>=3.0.0

# -----------------------------------------------------------------------------
# 4. Rapports PDF — Génération de documents
# -----------------------------------------------------------------------------
reportlab>=4.0.0
fpdf2>=2.4.0
pillow>=9.0.0

# -----------------------------------------------------------------------------
# 5. Celery & Redis — Tâches asynchrones
# -----------------------------------------------------------------------------
celery>=5.3.0
redis>=4.6.0
kombu>=5.3.0
flower>=2.0.0

# -----------------------------------------------------------------------------
# 6. Monitoring & Utilitaires système
# -----------------------------------------------------------------------------
psutil>=5.9.0
tqdm>=4.62.0
pyyaml>=6.0.0                 # (optionnel, configs YAML)
requests>=2.26.0              # (optionnel, HTTP requests)

# -----------------------------------------------------------------------------
# 7. Optimisation IA
# -----------------------------------------------------------------------------

# 7.1 Bayesian Optimization — Optuna (TPE / GP / CMA-ES)
optuna>=3.0.0
cmaes>=0.10.0

# 7.2 Sensitivity Analysis — SALib (Sobol, FAST, Morris)
SALib>=1.4.0

# 7.3 Machine Learning — Surrogate Models (RF, GBM, GP)
scikit-learn>=1.0.0
joblib>=1.2.0

# 7.4 BoTorch / PyTorch — GP Bayésien avancé (OPTIONNEL)
# Installer séparément pour éviter le téléchargement CUDA (~4 GB) :
#   pip install torch --index-url https://download.pytorch.org/whl/cpu
#   pip install botorch
# torch>=2.0.0
# botorch>=0.9.0

# -----------------------------------------------------------------------------
# 8. Agent LLM — Assistant conversationnel
# -----------------------------------------------------------------------------

# 8.1 Ollama (local, par défaut)
# Le package Python ollama est requis ; le binaire système ollama doit
# être installé séparément (voir INSTALL_UBUNTU.md) :
#   curl -fsSL https://ollama.com/install.sh | sh
ollama>=0.2.0

# 8.2 Anthropic (cloud, optionnel)
# Décommentez si SPARC_LLM_PROVIDER=anthropic
# anthropic>=0.40.0

# -----------------------------------------------------------------------------
# 9. Materials Project API — Base de données matériaux
# -----------------------------------------------------------------------------
boto3>=1.26.0
pymatgen>=2022.3.7
mp-api>=0.37.0

# -----------------------------------------------------------------------------
# 10. Développement & Tests (optionnel)
# -----------------------------------------------------------------------------
# pytest>=7.0.0
# pytest-cov>=4.0.0
# black>=23.0.0
# flake8>=6.0.0

# =============================================================================
# Notes d'installation :
# =============================================================================
# 1. Exécuter : ./setup.sh
#    → Installe Sesame (NIST) + toutes les dépendances ci-dessus
#
# 2. Sesame n'est PAS sur PyPI — version pinned pour reproductibilité :
#    pip install git+https://github.com/usnistgov/sesame.git@e2769a9d15c64415a87a5cfb566cbf2f3dac309f
git+https://github.com/usnistgov/sesame.git@e2769a9d15c64415a87a5cfb566cbf2f3dac309f
#
# 3. BoTorch optionnel : si non installé, le moteur BoTorch bascule automatiquement
#    sur Optuna TPE (fallback graceful). Aucun impact sur les autres fonctionnalités.
#
# 4. Ollama : le package Python `ollama` est ici, mais le binaire système
#    (ollama serve) doit être installé séparément (voir INSTALL_UBUNTU.md).
#
# 5. Versions minimales indiquées ; versions plus récentes compatibles.
# =============================================================================
