Tom Daluzeau
← Bachelor DevOps · ESGI

Parcours · 8 leçons · 97 min

Python · système et API

venv, os, shutil, subprocess, puis les API REST avec requests. Le programme du CC2.

0 / 8 leçonsParcours terminé ✓
Commencer
  1. venv, pip et variables d'environnement

    Isoler les paquets d'un projet dans un venv, figer leurs versions dans requirements.txt, lire une variable d'environnement avec os.environ et savoir pourquoi un secret n'a rien à faire dans le code ni dans git.

    12 questions7 cartes
  2. Rapports datés, os.scandir et shutil

    Créer un dossier de rapports, nommer chaque rapport avec sa date pour qu'il se trie tout seul, lister un dossier avec os.scandir, calculer l'âge d'un fichier, puis copier, déplacer, archiver et supprimer avec shutil.

    12 questions8 cartes
  3. subprocess : lancer une commande depuis Python

    Lancer une commande avec subprocess.run et une liste d'arguments, lire son code de retour et sa sortie, transformer un échec en exception avec check=True, borner l'attente avec timeout, et adapter la commande au système avec platform.system et shutil.which.

    12 questions8 cartes
  4. Bilan du parc : log.log, max(key=) et code de sortie

    Journaliser chaque serveur au niveau qui correspond à son état avec log.log, trouver le pire état du parc avec max et key, et en déduire le code de sortie du programme : 0, 1 ou 2.

    12 questions7 cartes
  5. HTTP et requests.get : interroger /health

    Lire un code de statut HTTP, distinguer un serveur sain, en panne ou injoignable, et interroger une adresse avec requests.get : status_code, json(), text, elapsed et raise_for_status().

    12 questions7 cartes
  6. requests : timeout, exceptions et statut ok / degraded / down

    Mettre un timeout à chaque appel, reconnaître Timeout, ConnectionError, HTTPError et leur parent RequestException, ranger les except dans le bon ordre et classer un serveur en ok, degraded ou down.

    12 questions7 cartes
  7. Session et essais répétés : réessayer sans insister

    Réutiliser une connexion et des en-têtes avec requests.Session(), réessayer un appel raté avec une boucle for et time.sleep, doubler la pause à chaque essai, et savoir pourquoi on s'arrête après quelques essais.

    12 questions7 cartes
  8. API GitLab et webhook : token, pagination, alerte

    Appeler une API authentifiée avec un token placé dans un en-tête et lu dans os.environ, récupérer toutes les pages d'une liste, nettoyer un nom avec removeprefix, puis envoyer une alerte utile sur un webhook avec requests.post.

    12 questions7 cartes

Test du parcours Python · système

10 questions. Tu réponds, on passe à la suivante. La note arrive à la fin.