Files
ArtStudies/.github/copilot-instructions.md

3.2 KiB

Copilot Instructions for ArtStudies

Collection de travaux académiques en mathématiques (L3 → M2) utilisant Python et R.

Architecture du Projet

L3/, M1/, M2/          # Niveaux académiques (Licence 3, Master 1 & 2)
└── <Nom du Cours>/    # Ex: "Deep Learning", "Linear Models"
    ├── TP{n}/         # Travaux pratiques numérotés
    ├── Project/       # Projets finaux
    └── data/          # Données locales au TP

Python - Conventions

  • Gestionnaire de packages : uv (voir pyproject.toml racine)
  • Linter : Ruff avec règles strictes (select = ["ALL"])
  • Format des imports : sections personnalisées définies dans pyproject.toml :
    # standard-library → third-party → data-science → ml → first-party
    import numpy as np      # data-science group
    import pandas as pd
    from sklearn import ... # ml group
    
  • Notebooks : structures Jupyter avec cellules markdown descriptives + code
  • Reproductibilité : utiliser np.random.seed(42) pour fixer les seeds

Sous-projets avec dépendances isolées

Certains projets ont leur propre pyproject.toml (ex: M2/Reinforcement Learning/project/). Utiliser uv dans ces dossiers pour installer les dépendances spécifiques.

R - Conventions

  • Projets R : fichiers .Rproj dans chaque dossier TP/Projet
  • Gestion packages : renv pour l'isolation (voir .Rprofile)
  • Script d'init : M2/Data Visualisation/init.R installe les packages courants
  • Documents : RMarkdown (.Rmd) pour les rapports reproductibles
  • Linting : utiliser lintr pour l'analyse statique et styler pour le formatage (config: .lintr à la racine)
    # Vérifier le style d'un fichier
    lintr::lint("script.R")
    
    # Formater automatiquement
    styler::style_file("script.R")
    

SQL (M2/SQL)

Environnement Docker avec MySQL :

# Démarrer le conteneur
docker compose -f M2/SQL/docker-compose.yml up -d

# Exécuter les TPs via Make
make tp1   # Exécute scripts/TP1.sql
make tp2   # Exécute scripts/TP2.sql
make project  # Exécute scripts/DANJOU_Arthur.sql

Logs générés dans M2/SQL/logs/.

Nommage des Fichiers

Type Convention Exemple
TP numérotés TP{n}.ipynb, TP{n}.Rmd TP1.ipynb, TP2.Rmd
Projets personnels DANJOU_Arthur.* DANJOU_Arthur.sql
Labs thématiques Nom descriptif complet Lab 4 - Monte Carlo Control in Blackjack game.ipynb

Stack Technique Principale

  • Data Science : numpy, pandas, scipy, matplotlib, seaborn, plotly
  • ML : scikit-learn, xgboost, catboost, tensorflow/keras, shap
  • LLM/RAG : langchain, sentence-transformers, faiss-cpu
  • Géospatial : geopandas, rasterio
  • R : tidyverse, ggplot2, FactoMineR, caret, glmnet

Bonnes Pratiques

  1. Toujours vérifier si un pyproject.toml local existe avant d'ajouter des dépendances
  2. Les notebooks contiennent souvent du texte explicatif en français
  3. Utiliser Plotly pour les visualisations interactives, Matplotlib/Seaborn pour les exports
  4. Les données volumineuses ne sont pas versionnées - télécharger via le code du notebook si nécessaire