> ## 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.

# Workspaces

export const GitHubLink = ({url, compact = false}) => <a href={url} target="_blank" rel="noopener noreferrer" className={compact ? "source-link" : "github-source-link"}>
    {compact ? "View source" : <>
    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
      <path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" />
    </svg>
    GitHub source
      </>}
  </a>;

<GitHubLink url="https://github.com/wandb/wandb-workspaces/blob/main/wandb_workspaces/workspaces/internal.py" />

<Note>
  L’API Report and Workspace de W\&B est en préversion publique.
</Note>

Bibliothèque Python permettant d’utiliser l’API Workspace de W\&B par programmation.

```python theme={"system"}
# Importation
import wandb_workspaces.workspaces as ws
import wandb_workspaces.reports.v2 as wr

# Exemple de création d’un workspace
ws.Workspace(
     name="Example W&B Workspace",
     entity="entity", # entity propriétaire du workspace
     project="project", # projet associé au workspace
     sections=[
         ws.Section(
             name="Validation Metrics",
             panels=[
                 wr.LinePlot(x="Step", y=["val_loss"]),
                 wr.BarPlot(metrics=["val_accuracy"]),
                 wr.ScalarChart(metric="f1_score", groupby_aggfunc="mean"),
             ],
             is_open=True,
         ),
     ],
)
workspace.save()
```

<h2 id="class-runsettings">
  <kbd>classe</kbd> `RunSettings`
</h2>

Paramètres d’un run dans un runset (barre latérale gauche).

**Attributs :**

* `color` (str) :  couleur du run dans l’interface utilisateur.  Il peut s’agir d’une valeur hexadécimale (#ff0000), d’un nom de couleur CSS (red) ou d’une valeur RGB (rgb(255, 0, 0))
* `disabled` (bool) :  indique si le run est désactivé (œil fermé dans l’interface utilisateur). La valeur par défaut est `False`.

***

<h2 id="class-runsetsettings">
  <kbd>classe</kbd> `RunsetSettings`
</h2>

Paramètres du runset (la barre latérale gauche contenant les runs) dans un workspace.

**Attributs :**

* `query` (str) :  Requête permettant de filtrer le runset (peut être une expression regex, voir le paramètre suivant).
* `regex_query` (bool) :  Indique si la requête (ci-dessus) est une expression regex. La valeur par défaut est `False`.
* `filters` (Union\[str, LList\[FilterExpr], Or, And]) :  Filtres du runset.
  * Sous forme de liste de FilterExpr : les filtres sont combinés avec AND.
  * Sous forme de chaîne : expressions de type Python, par exemple « Config('lr') = 0.001 and State = 'finished' »
* `Supports operators` :  `=`, `==`, `!=`, `<`, `>`, `<=`, `>=`, `in`, `not in`, `and`, `or`
  * Sous forme de combinateur Or/And : permet d’utiliser la logique OR et des groupes imbriqués. Par exemple, Or(And(Config("lr") == 0.01, Metric("State") == "finished"), Config("lr") == 0.1)
* `groupby` (LList\[expr.MetricType]) :  Liste de métriques selon lesquelles regrouper le runset. Valeurs possibles :  `Metric`, `Summary`, `Config`, `Tags` ou `KeysInfo`.
* `order` (LList\[expr.Ordering]) :  Liste de métriques et d’ordres de tri à appliquer au runset.
* `run_settings` (Dict\[str, RunSettings]) :  Dictionnaire de paramètres de run, dont la clé  est l’ID du run et la valeur un objet RunSettings.
* `pinned_columns` (LList\[str]) :  Liste des noms de colonnes à épingler.
* `Column names use format` :  "run:displayName", "summary:metric", "config:param".
* `run` : displayName est ajouté automatiquement s’il est absent.
* `Example` :  \["summary:accuracy", "summary:loss"]
* `baseline_run` (Optional\[str]) :  Slug W\&B du run de référence (la  valeur de `wandb.Run.id`, par exemple `"1mbku38n"`, qui correspond aussi au dernier segment  du chemin de l’URL d’un run). Utilisé pour les colonnes de delta et le style  de comparaison. Lorsqu’il est défini, le run de référence est automatiquement ajouté à  `pinned_runs`, conformément au comportement de la W\&B App. Doit désigner un  run appartenant au projet du workspace : l’épinglage entre projets n’est pas encore  pris en charge par ce SDK (pour l’équivalent dans l’interface, consultez le volet latéral « Add cross-project  runs » de la W\&B App).
* `pinned_runs` (LList\[str]) :  Liste ordonnée de slugs de runs W\&B à garder  visibles dans le sélecteur de runs et toujours récupérés pour les graphiques. Transmettez  des chaînes de slug (`wandb.Run.id`), et non des ID GraphQL. La W\&B App  limite cette liste à 20 entrées.

**Exemple :**

```python theme={"system"}
    # Avec des filtres sous forme de chaîne (nouveau)
    RunsetSettings(
         filters="Config('learning_rate') = 0.001 and State = 'finished'",
         pinned_columns=["summary:accuracy", "summary:loss"],
         baseline_run="1mbku38n",  # wandb.Run.id (le slug figurant dans l’URL)
         pinned_runs=["1mbku38n", "2u1g3j1c"],
    )

    # Avec une liste de FilterExpr (méthode d’origine)
    RunsetSettings(
         filters=[expr.Config("learning_rate") == 0.001],
         pinned_columns=["summary:accuracy", "summary:loss"],
    )
```

***

<h3 id="method-convert_filterexpr_list_to_string">
  <kbd>méthode</kbd> `convert_filterexpr_list_to_string`
</h3>

```python theme={"system"}
convert_filterexpr_list_to_string()
```

Convertit une liste de FilterExpr ou un Or/And en expression de type chaîne.

***

<h3 id="method-ensure_baseline_pinned">
  <kbd>méthode</kbd> `ensure_baseline_pinned`
</h3>

```python theme={"system"}
ensure_baseline_pinned()
```

Reproduit l'invariant de la W\&B App : un run de référence est toujours également épinglé.

Le handler de l'action `setBaselineRun` du frontend passe par `setRunPinnedAndBaseline` : toute spec produite par l'interface contient donc l'ID du run de référence dans `pinnedRunIds`. Nous appliquons ici la même règle afin que les specs produites par le SDK soient cohérentes.

***

<h3 id="method-validate_and_setup_columns">
  <kbd>méthode</kbd> `validate_and_setup_columns`
</h3>

```python theme={"system"}
validate_and_setup_columns()
```

Vérifie que run:displayName est présent et configure les champs internes des colonnes.

***

<h2 id="class-section">
  <kbd>classe</kbd> `Section`
</h2>

Représente une section dans un workspace.

**Attributs :**

* `name` (str) :  Le nom ou titre de la section.
* `panels` (LList\[PanelTypes]) :  Liste ordonnée des panneaux de la section. Par défaut, le premier se trouve en haut à gauche et le dernier en bas à droite.
* `is_open` (bool) :  Indique si la section est ouverte ou fermée. Par défaut, elle est fermée.
* `pinned` (bool) :  Indique si la section est épinglée. Les sections épinglées s’affichent en haut du workspace. Par défaut : False.
* `layout_settings` (SectionLayoutSettings) :  Paramètres de mise en page des panneaux de la section.
* `panel_settings` :  Paramètres de panneau appliqués à tous les panneaux de la section, à l’image de `WorkspaceSettings` pour une `Section`.

***

<h2 id="class-sectionlayoutsettings">
  <kbd>classe</kbd> `SectionLayoutSettings`
</h2>

Paramètres de mise en page des panneaux d’une section, généralement visibles en haut à droite de la section dans l’interface Workspace de la W\&B App.

**Attributs :**

* `columns` (int) :  Le nombre de colonnes de la mise en page. Par défaut : 3.
* `rows` (int) :  Le nombre de lignes de la mise en page. Par défaut : 2.

***

<h2 id="class-sectionpanelsettings">
  <kbd>classe</kbd> `SectionPanelSettings`
</h2>

Paramètres de panneau pour une section, comparables à `WorkspaceSettings`, mais appliqués à une section.

Les paramètres définis ici peuvent être remplacés par des paramètres de panneau plus spécifiques, selon l’ordre de priorité suivant : Section \< Panneau.

**Attributs :**

* `x_axis` (str) :  Nom de la métrique utilisée pour l’axe X. Valeur par défaut : "Step".
* `x_min Optional[float]` :  Valeur minimum de l’axe X.
* `x_max Optional[float]` :  Valeur maximum de l’axe X.
* `smoothing_type` (Literal\['exponentialTimeWeighted', 'exponential', 'gaussian', 'average', 'none']) :  Type de lissage appliqué à tous les panneaux.
* `smoothing_weight` (int) :  Poids de lissage appliqué à tous les panneaux.

***

<h2 id="class-workspace">
  <kbd>classe</kbd> `Workspace`
</h2>

Représente un workspace W\&B, avec ses sections, ses paramètres et la configuration de ses ensembles de runs.

**Attributs :**

* `entity` (str) :  L’entity dans laquelle ce workspace sera enregistré (généralement un nom d’utilisateur ou d’équipe).
* `project` (str) :  Le projet dans lequel ce workspace sera enregistré.
* `name` :  Le nom du workspace.
* `sections` (LList\[Section]) :  Liste ordonnée des sections du workspace.  La première section s’affiche en haut du workspace.
* `settings` (WorkspaceSettings) :  Paramètres du workspace, généralement affichés en haut du workspace dans l’interface utilisateur.
* `runset_settings` (RunsetSettings) :  Paramètres du runset  (la barre latérale gauche qui contient les runs) d’un workspace.
* `auto_generate_panels` (bool) :  Indique si des panneaux doivent être générés automatiquement pour toutes les clés journalisées dans ce projet.  Recommandé si vous souhaitez que toutes les données disponibles soient visualisées par défaut.  Ce paramètre ne peut être défini qu’à la création du workspace et ne peut plus être modifié ensuite.

***

<h3 id="property-auto_generate_panels">
  <kbd>propriété</kbd> auto\_generate\_panels
</h3>

***

<h3 id="property-url">
  <kbd>propriété</kbd> url
</h3>

L’URL du workspace dans la W\&B App.

***

<h3 id="classmethod-from_url">
  <kbd>classmethod</kbd> `from_url`
</h3>

```python theme={"system"}
from_url(url: str)
```

Obtenir un workspace à partir d’une URL.

***

<h3 id="method-save">
  <kbd>méthode</kbd> `save`
</h3>

```python theme={"system"}
save()
```

Enregistre le workspace actuel dans W\&B.

**Retourne :**

* `Workspace` :  le workspace mis à jour, avec le nom interne et l’ID enregistrés.

***

<h3 id="method-save_as_new_view">
  <kbd>méthode</kbd> `save_as_new_view`
</h3>

```python theme={"system"}
save_as_new_view()
```

Enregistre le workspace actuel en tant que nouvelle vue dans W\&B.

**Retourne :**

* `Workspace` :  le workspace mis à jour, avec le nom interne et l’ID enregistrés.

***

<h2 id="class-workspacesettings">
  <kbd>classe</kbd> `WorkspaceSettings`
</h2>

Paramètres du workspace, généralement affichés en haut du workspace dans l’interface utilisateur.

Cet objet comprend les paramètres de l’axe X, du lissage, des valeurs aberrantes, des panneaux, des infobulles, des runs et de la barre de requête des panneaux.

Les paramètres définis ici peuvent être redéfinis par des paramètres plus spécifiques au niveau de la section et du panneau, selon l’ordre de priorité suivant : Workspace \< Section \< Panel

**Attributs :**

* `x_axis` (str) :  Nom de la métrique utilisée pour l’axe X.
* `x_min` (Optional\[float]) :  Valeur minimale de l’axe X.
* `x_max` (Optional\[float]) :  Valeur maximale de l’axe X.
* `smoothing_type` (Literal\['exponentialTimeWeighted', 'exponential', 'gaussian', 'average', 'none']) :  Type de lissage appliqué à tous les panneaux.
* `smoothing_weight` (int) :  Poids de lissage appliqué à tous les panneaux.
* `ignore_outliers` (bool) :  Ignore les valeurs aberrantes dans tous les panneaux.
* `sort_panels_alphabetically` (bool) :  Trie par ordre alphabétique les panneaux de toutes les sections.
* `group_by_prefix` (Literal\["first", "last"]) :  Regroupe les panneaux selon le premier préfixe ou jusqu’au dernier préfixe (first ou last). Valeur par défaut : `last`.
* `remove_legends_from_panels` (bool) :  Supprime les légendes de tous les panneaux.
* `tooltip_number_of_runs` (Literal\["default", "all", "none"]) :  Nombre de runs à afficher dans l’infobulle.
* `tooltip_color_run_names` (bool) :  Indique si les noms des runs sont colorés dans l’infobulle pour correspondre au runset (True) ou non (False). Valeur par défaut : `True`.
* `max_runs` (int) :  Nombre maximal de runs à afficher par panneau (il s’agit des 10 premiers runs du runset).
* `point_visualization_method` (Literal\["line", "point", "line\_point"]) :  Méthode de visualisation des points.
* `panel_search_query` (str) :  Requête de la barre de recherche des panneaux (peut être une expression régulière).
* `auto_expand_panel_search_results` (bool) :  Indique si les résultats de la recherche de panneaux sont développés automatiquement.
