# Jobs

Consultez la page de documentation de [HfApi](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi) pour la référence des méthodes permettant de gérer vos Jobs sur le Hub.

- Exécuter un job : [run_job()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.run_job)
- Récupérer les journaux : [fetch_job_logs()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_logs)
- Récupérer les métriques : [fetch_job_metrics()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.fetch_job_metrics)
- Inspecter le job : [inspect_job()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.inspect_job)
- Attendre la fin du/des Job(s) : [wait_for_job()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.wait_for_job)
- Liste des tâches : [list_jobs()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.list_jobs)
- Annuler le travail : [cancel_job()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.cancel_job)
- Exécuter un job UV : [run_uv_job()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.run_uv_job)
- Synchroniser un répertoire local pour le monter dans un Job : [sync_job_volume()](/docs/huggingface_hub/v2.4.0/fr/package_reference/hf_api#huggingface_hub.HfApi.sync_job_volume)

## Structures de données

### JobInfo[[huggingface_hub.JobInfo]]

#### huggingface_hub.JobInfo[[huggingface_hub.JobInfo]]

```python
huggingface_hub.JobInfo(**kwargs)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L186)

**Paramètres :**

id (`str`) : ID du job.

created_at (`datetime` ou `None`) : Moment de la création du Job.

started_at (`datetime` ou `None`) : Moment où le Job a commencé à s'exécuter. None tant que le Job est encore en cours de planification.

finished_at (`datetime` ou `None`) : Moment où le Job a terminé. None tant que le Job est encore en cours de planification ou d'exécution.

docker_image (`str` ou `None`) : L’image Docker de Docker Hub utilisée pour le Job. Peut être None si space_id est présent à la place.

space_id (`str` ou `None`) : L'image Docker de Hugging Face Spaces utilisée pour le Job. Peut être None si docker_image est présent à la place.

command (`list[str]` ou `None`) : Commande du Job, par exemple `["python", "-c", "print('hello world')"]`

arguments (`list[str]` ou `None`) : Arguments passés à la commande

environment (`dict[str]` ou `None`) : Variables d'environnement du Job sous forme de dictionnaire.

secrets (`dict[str]` ou `None`) : Variables d'environnement secrètes du Job (chiffrées).

flavor (`str` ou `None`) : Type de matériel. Consultez `JobHardware` pour les valeurs possibles. Par exemple, `"cpu-basic"`.

labels (`dict[str, str]` ou `None`) : Étiquettes à associer au travail (paires clé-valeur).

volumes (`list[Volume]` ou `None`) : Volumes montés dans le conteneur du job (buckets, modèles, jeux de données, spaces).

status : (`JobStatus` ou `None`) : Statut du Job, par exemple `JobStatus(stage="RUNNING", message=None)` Consultez [JobStage](/docs/huggingface_hub/v2.4.0/fr/package_reference/jobs#huggingface_hub.JobStage) pour les valeurs de stage possibles.

durations (`JobDurations` ou `None`) : Répartition des temps du Job. Présente pour tous les états du job, y compris SCHEDULING.

owner : (`JobOwner` ou `None`) : Propriétaire du Job, par exemple `JobOwner(id="5e9ecfc04957053f60648a3e", name="lhoestq", type="user")`

initiator (`JobInitiator` ou `None`) : Ce qui a déclenché le Job, par exemple `JobInitiator(type="scheduled-job", id="...")` pour une exécution déclenchée par cron.

expose_urls (`list[str]` ou `None`) : URL publiques permettant d'accéder aux ports exposés du Job (une par port exposé), par exemple `["https://687fb701029421ae5549d998--8000.hf.jobs"]`. `None` si aucun port n'est exposé. L'accès à une URL nécessite un jeton HF avec un accès en lecture à l'espace de noms du Job, sauf si le port est public.

ssh_url (`str` ou `None`) : point de terminaison SSH du Job, par exemple `"ssh://687fb701029421ae5549d998@ssh.hf.jobs"`. Présent uniquement lorsque le Job a été démarré avec `ssh=True`. La connexion nécessite un accès en écriture à l'espace de noms du Job et une clé publique SSH enregistrée sur le Hub (https://huggingface.co/settings/keys).

network (`JobNetwork` ou `None`) : Groupe de réseau auquel le Job a adhéré et les alias qu'il revendique, par exemple `JobNetwork(group="train", aliases=["master"])`. `None` si le Job a été démarré sans `network_group=`.

retry (`int` ou `None`) : Nombre de nouvelles tentatives configurées pour le Job (`attempts - 1`).

expose (`list[int]` ou `None`) : Tous les ports exposés via le proxy Jobs, y compris les ports publics.

expose_public (`list[int]` ou `None`) : Ports exposés accessibles sans authentification.

Contient des informations sur un Job.

Exemple :

```python
>>> from huggingface_hub import run_job
>>> job = run_job(
...     image="python:3.12",
...     command=["python", "-c", "print('Hello from the cloud!')"]
... )
>>> job
JobInfo(id='687fb701029421ae5549d998', created_at=datetime.datetime(2025, 7, 22, 16, 6, 25, 79000, tzinfo=datetime.timezone.utc), started_at=datetime.datetime(2025, 7, 22, 16, 6, 31, 79000, tzinfo=datetime.timezone.utc), finished_at=None, docker_image='python:3.12', space_id=None, command=['python', '-c', "print('Hello from the cloud!')"], arguments=[], environment={}, secrets={}, flavor='cpu-basic', labels=None, status=JobStatus(stage='RUNNING', message=None), durations=JobDurations(scheduling_secs=6, running_secs=2, total_secs=8), owner=JobOwner(id='5e9ecfc04957053f60648a3e', name='lhoestq', type='user'), initiator=JobInitiator(type='user', id='5e9ecfc04957053f60648a3e', name='lhoestq'), endpoint='https://huggingface.co', url='https://huggingface.co/jobs/lhoestq/687fb701029421ae5549d998')
>>> job.id
'687fb701029421ae5549d998'
>>> job.url
'https://huggingface.co/jobs/lhoestq/687fb701029421ae5549d998'
>>> job.status.stage
'RUNNING'
```

### JobOwner[[huggingface_hub.JobOwner]]

#### huggingface_hub.JobOwner[[huggingface_hub.JobOwner]]

```python
huggingface_hub.JobOwner(id: str, name: str, type: str)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L116)

### JobNetwork[[huggingface_hub.JobNetwork]]

#### huggingface_hub.JobNetwork[[huggingface_hub.JobNetwork]]

```python
huggingface_hub.JobNetwork(**kwargs)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L123)

**Paramètres :**

group (`str`) : Nom du groupe de réseau, tel que transmis à `network_group=`.

aliases (`list[str]`) : Alias que le Job revendique dans le groupe, tels que passés à `network_aliases=`. Vide s'il n'y en a aucun.

Groupe de réseau : un Job a rejoint.

### JobStage[[huggingface_hub.JobStage]]

#### huggingface_hub.JobStage[[huggingface_hub.JobStage]]

```python
huggingface_hub.JobStage(value, names = None, module = None, qualname = None, type = None, start = 1)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L71)

Énumération des étapes possibles d'un Job sur le Hub.

La valeur peut être comparée à une chaîne de caractères :
```py
assert JobStage.COMPLETED == "COMPLETED"
```

Les valeurs possibles sont : `COMPLETED`, `CANCELED`, `ERROR`, `DELETED`, `SCHEDULING`, `RUNNING`. Extrait de https://github.com/huggingface/moon-landing/blob/main/server/job_types/JobInfo.ts#L61 (url privée).

### JobStatus[[huggingface_hub.JobStatus]]

#### huggingface_hub.JobStatus[[huggingface_hub.JobStatus]]

```python
huggingface_hub.JobStatus(stage: JobStage, message: str | None, expose_urls: list[str] | None, ssh_url: str | None)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_jobs_api.py#L108)

### Volume[[huggingface_hub.Volume]]

#### huggingface_hub.Volume[[huggingface_hub.Volume]]

```python
huggingface_hub.Volume(**kwargs)
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_space_api.py#L128)

**Paramètres :**

type (`str`) : Type de volume : `"bucket"`, `"model"`, `"dataset"` ou `"space"`.

source (`str`) : Identifiant de la source, par exemple `"username/my-bucket"` ou `"username/my-model"`.

mount_path (`str`) : Chemin de montage à l'intérieur du conteneur, par exemple `"/data"`. Doit commencer par `/`.

revision (`str` ou `None`) : révision Git (uniquement pour les dépôts, par défaut `"main"`).

read_only (`bool` ou `None`) : Montage en lecture seule. Forcé à `True` pour les dépôts, valeur par défaut `False` pour les buckets.

path (`str` ou `None`) : Préfixe de sous-dossier dans le bucket/répertoire à monter, par exemple `"path/to/dir"`.

Décrivant un volume à monter dans un conteneur Space ou Job.

#### to_dict[[huggingface_hub.Volume.to_dict]]

```python
to_dict()
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_space_api.py#L164)

Sérialiser vers la charge utile JSON attendue par l'API du Hub.

#### to_uri[[huggingface_hub.Volume.to_uri]]

```python
to_uri()
```

[Source](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_space_api.py#L179)

Retourner le volume sous forme d’URI de montage HF dans le format attendu par l’interface en ligne de commande.

