> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enregistrer et comparer le code

> Activez l’enregistrement du code, comparez le code de différents runs W&B avec le comparateur de code et capturez l’historique de session Jupyter.

Utilisez W\&B pour enregistrer votre code, comparer le code d’un run à l’autre, afficher les modifications locales et capturer l’historique de session Jupyter.

<h2 id="enable-code-saving">
  Activer l’enregistrement du code
</h2>

Configurez l’enregistrement du code pour votre équipe ou votre organisation. Les contrôles au niveau de l’équipe et de l’organisation sont décrits dans [Configurer les paramètres de confidentialité](/fr/products/wandb/platform/hosting/privacy-settings).

<Info>
  Par défaut, W\&B désactive l’enregistrement du code pour toutes les équipes. Pour que vous puissiez l’activer pour une équipe, un administrateur de l’organisation doit laisser l’option **Disable default code saving** désactivée pour l’organisation. Voir la section [Organisation](#organization).
</Info>

<h3 id="team">
  Équipe
</h3>

Pour activer l’enregistrement du code pour une équipe en tant qu’administrateur d’équipe, accédez à la page **Settings**, puis à la section **Privacy**, et configurez **Enable code saving by default** pour les runs de cette équipe. Cette option n’est disponible que si aucun administrateur de l’organisation n’a activé **Disable default code saving** pour l’ensemble de l’organisation. Pour connaître la marche à suivre, consultez [Configurer les paramètres de confidentialité d’une équipe](/fr/products/wandb/platform/hosting/privacy-settings#configure-privacy-settings-for-a-team).

<h3 id="organization">
  Organisation
</h3>

En tant qu’administrateur de l’organisation, accédez à **Settings**, sélectionnez **Privacy**, puis utilisez **Disable default code saving** dans la section **Project and content security** pour définir si l’enregistrement du code est désactivé par défaut pour toutes les équipes. Tant que ce paramètre est activé, les administrateurs d’équipe ne peuvent pas activer **Enable code saving by default** pour leur équipe. Pour consulter la liste complète des contrôles au niveau de l’organisation, voir [Appliquer les paramètres de confidentialité à toutes les équipes](/fr/products/wandb/platform/hosting/privacy-settings#enforce-privacy-settings-for-all-teams).

<h2 id="save-code">
  Enregistrer le code
</h2>

Capturez le code source ayant produit un run sous forme d’[artifact](/fr/products/wandb/ref/python/experiments/artifact). L’artifact de code peut être consulté dans le workspace de votre projet.

Il existe deux façons d’enregistrer le code : une approche précise, au cas par cas, et une approche automatique.

<h3 id="fine-grain-control">
  Contrôle précis
</h3>

Utilisez `wandb.Run.log_code()` pour journaliser des fichiers ou des répertoires spécifiques sous forme d’[artifact](/fr/products/wandb/ref/python/experiments/artifact).

Par défaut, W\&B parcourt le répertoire courant et journalise tous les fichiers portant l’extension `.py`.

L’exemple suivant montre comment utiliser `wandb.Run.log_code()` pour journaliser le répertoire courant :

```python theme={"system"}
import wandb

with wandb.init() as run:
    # Journaliser le répertoire courant sous forme d’artifact de code
    run.log_code(root=".")
```

L’exemple suivant montre comment utiliser `wandb.Run.log_code()` avec les paramètres `include_fn=` et `exclude_fn=` pour indiquer les fichiers à inclure et à exclure lors de la journalisation du code :

```python theme={"system"}
import wandb

with wandb.init() as run:
    run.log_code(
         root="../",
         include_fn=lambda path: path.endswith(".py") or path.endswith(".ipynb"),
         exclude_fn=lambda path, root: os.path.relpath(path, root).startswith(
             "cache/"
         ),
    )
```

Pour contrôler plus finement les types et les emplacements des fichiers de code source enregistrés par W\&B, consultez la [documentation de référence](/fr/products/wandb/ref/python/experiments/run#log_code).

<h3 id="automatically-capture-code">
  Capturer automatiquement le code
</h3>

Utilisez `wandb.init(settings=wandb.Settings(code_dir=))` pour capturer automatiquement tout le code du répertoire courant et de ses sous-répertoires. Par défaut, W\&B capture :

* Les fichiers portant l’extension `.py`
* requirements.txt
* Dockerfile
* Tout ce qui se trouve sous `wandb/` ou `.wandb/` est exclu

L’exemple suivant montre comment capturer tout le code du répertoire courant et de ses sous-répertoires :

```python theme={"system"}
import wandb

with wandb.init(settings=wandb.Settings(code_dir=".")) as run:
    # Placez votre code d’entraînement ici
```

Vous pouvez également indiquer un autre répertoire en remplaçant `.` par le chemin du répertoire que vous souhaitez capturer.

<h2 id="view-local-changes">
  Afficher les modifications locales
</h2>

W\&B génère des fichiers diff lorsque vous journalisez du code comportant des modifications indexées ou non indexées dans votre dépôt Git. Vous pouvez ensuite consulter ces modifications dans l’interface W\&B.

W\&B nomme les fichiers diff `diff.patch` ou `diff_<sha>.patch`. Ces fichiers contiennent les modifications de code locales qui n’ont pas encore été validées dans Git, par rapport à `HEAD`.

Pour afficher les fichiers diff :

1. Accédez au workspace de votre projet.
2. Dans la barre latérale gauche, cliquez sur **Workspace**.
3. Dans le sélecteur de runs, sélectionnez le run dont vous souhaitez afficher le diff.
4. Sur la page **Overview** du run, sélectionnez l’onglet **Files**.
5. Dans la liste des fichiers, sélectionnez le fichier `diff.patch` ou `diff_<sha>.patch`.
6. Sélectionnez un fichier dans la liste pour développer son diff.

W\&B propose deux modes d’affichage du diff entre les runs : *unifié* et *scindé*.

* La vue unifiée affiche le diff dans un seul volet :
  <Frame>
    <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/diff_unified_view.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=e9e70ee524d46ab1fad4f4acd6496168" alt="Vue unifiée du patch diff" width="3258" height="1232" data-path="products/wandb/_media/diff_unified_view.png" />
  </Frame>

* La vue scindée affiche le diff dans deux volets côte à côte :

  <Frame>
    <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/diff_split_view.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=9a13d394d56b24dab5a524183c37c44d" alt="Vue scindée du patch diff" width="3272" height="1084" data-path="products/wandb/_media/diff_split_view.png" />
  </Frame>

Pour basculer entre les deux vues, sélectionnez le bouton **Unified** ou **Split** dans le coin supérieur droit de la vue du diff, sous le bouton **Download**.

<h2 id="jupyter-session-history">
  Historique de session Jupyter
</h2>

W\&B enregistre l’historique du code exécuté dans votre session de notebook Jupyter. Lorsque vous appelez `wandb.init()` dans Jupyter, W\&B ajoute un hook qui enregistre automatiquement un notebook Jupyter contenant l’historique du code exécuté au cours de votre session actuelle.

1. Accédez au workspace du projet qui contient votre code.
2. Sélectionnez l’onglet **Artifacts** dans la barre latérale du projet.
3. Développez l’artifact **code**.
4. Sélectionnez l’onglet **Files**.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/jupyter_session_history.gif?s=f3d7f95da48784cb05e41a1b854f8ec9" alt="Historique de session Jupyter" width="3868" height="2574" data-path="products/wandb/_media/jupyter_session_history.gif" />
</Frame>

Cet onglet affiche les cellules exécutées dans votre session, ainsi que toutes les sorties générées par des appels à la méthode `display` d’IPython. Vous pouvez ainsi voir précisément quel code a été exécuté dans Jupyter pour un run donné. Dans la mesure du possible, W\&B enregistre également la version la plus récente du notebook, que vous trouverez elle aussi dans le répertoire code.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/jupyter_session_history_display.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=8be116a89181083f0c994627894adaee" alt="Sortie de session Jupyter" width="3707" height="1708" data-path="products/wandb/_media/jupyter_session_history_display.png" />
</Frame>

<h2 id="compare-code-across-runs">
  Comparer le code entre plusieurs runs
</h2>

Comparez le code utilisé dans différents runs W\&B :

1. Cliquez sur le bouton **Add panels** dans le coin supérieur droit de la page.
2. Développez la liste déroulante **TEXT AND CODE**, puis sélectionnez **Code**.

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/code_comparer.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=fe09c2fd7401fcf13e1cada70c0f2d50" alt="Panneau du comparateur de code" width="887" height="337" data-path="products/wandb/_media/code_comparer.png" />
</Frame>
