Formation en IA & Data: Python intermédiaire : maintenance, qualité et évolution de scripts data - Ascent Formation
Retour aux formations
IA & Data

Python intermédiaire : maintenance, qualité et évolution de scripts data

2 jour(s)14h

Description

Cette formation s'adresse à des profils techniques déjà familiers de Python, confrontés à des scripts ou projets data existants qu'ils doivent comprendre, fiabiliser et faire évoluer. Elle vise à consolider les pratiques professionnelles indispensables : structuration du code, lisibilité, typage, logging, tests, refactoring, manipulation de données et interactions SQL. L'approche est résolument orientée pratique, sur des exemples représentatifs d'un environnement professionnel data : scripts de transformation, manipulation de DataFrames, intégration avec une base de données, structuration et tests d'un module Python.

Objectifs pédagogiques

  • Consolider les pratiques Python utiles à la maintenance de code existant : structure, environnements, lisibilité et conventions
  • Lire, comprendre et documenter un projet Python existant
  • Identifier les zones de fragilité d'un script Python : complexité, duplication, dépendances, gestion d'erreurs
  • Refactorer progressivement du code pour améliorer sa lisibilité, sa maintenabilité et sa robustesse
  • Manipuler les opérations pandas essentielles dans des scripts de transformation de données
  • Interagir avec une base SQL depuis Python en respectant les bonnes pratiques de connexion, de requêtage et de sécurité
  • Mettre en place des tests unitaires simples avec pytest pour sécuriser les évolutions
  • Utiliser les outils de qualité courants : formatter, linter, typing et logging

Public concerné

Développeurs migration et profils techniques manipulant du code Python existant
Analytics engineers et data engineers
Profils techniques amenés à maintenir, faire évoluer ou reprendre des scripts Python data
BI developers en transition vers des tâches d'ingestion / transformation
Toute personne pratiquant Python à un niveau intermédiaire et souhaitant consolider ses pratiques professionnelles

Prérequis

Pratique régulière de Python à un niveau intermédiaire
Maîtrise des structures de base : variables, types, conditions, boucles, fonctions
Familiarité avec l'utilisation d'un terminal en ligne de commande
Notions de SQL appréciées (la formation s'adresse à des profils manipulant souvent des données)
Aucune connaissance préalable en data science avancée requise

Déroulé du programme

1

Jour 1 / Bonnes pratiques modernes Python et manipulation de données (7h)

7h
2

Module 1 / Rappels structurants et environnements de travail (1h30)

1h
3

• Rappels ciblés sur les structures de données Python : listes, dictionnaires, tuples, sets, compréhensions

4

• Fonctions, arguments, valeurs par défaut, arguments nommés, *args et **kwargs

5

• Gestion d'environnements virtuels : venv, pip, fichier requirements.txt

6

• Introduction aux gestionnaires modernes : uv, poetry (panorama)

7

• Structure d'un projet Python : packages, modules, organisation des fichiers

8

Module 2 / Lisibilité, typing et bonnes pratiques (2h)

2h
9

• Style de code et PEP 8 : convention de nommage, indentation, longueur de ligne

10

• Typing moderne : annotations de type, collections typées, Optional / Union, intérêt et limites du typage statique avec mypy

11

• Docstrings et conventions de documentation : Google, NumPy, reST

12

• Qualité automatisée du code : ruff pour le linting et le formatting, panorama de black et isort dans les environnements existants

13

• Logging au lieu de print : module logging, niveaux, configuration

14

• Gestion des erreurs : exceptions, try/except, exceptions personnalisées

15

Module 3 / Manipulation de données avec pandas (3h)

3h
16

• Manipuler les opérations pandas essentielles pour comprendre, corriger et faire évoluer des scripts data existants.

17

• Le DataFrame pandas : structure, création, lecture depuis CSV / Excel / Parquet

18

• Indexation, sélection, filtrage : loc, iloc, conditions booléennes

19

• Transformation des colonnes : opérations vectorisées, assign, map, usage raisonné de apply

20

• Gestion des valeurs manquantes : isna, fillna, dropna

21

• Agrégations et groupements : groupby, agg

22

• Jointures et concaténation : merge, concat

23

• Approfondi en TP : transformation d'un jeu de données représentatif d'un cas data

24

Jour 2 / Code maintenable, tests et interactions SQL (7h)

7h
25

Module 4 / Lecture et compréhension de code existant (1h30)

1h
26

• Méthodologie de lecture d'un projet Python inconnu : point d'entrée, dépendances, flux

27

• Outils d'exploration : pydoc, IDE, debugger

28

• Identifier les patterns courants : classes, modules, fonctions utilitaires

29

• Repérer les zones à risque : code legacy, fonctions trop longues, couplage fort

30

• Approfondi en TP : analyse d'un script Python représentatif et restitution

31

Module 5 / Refactoring et amélioration de code (2h)

2h
32

• Principes de refactoring : extraire des fonctions, réduire la complexité, supprimer la duplication

33

• Patterns courants : substitution des nombres magiques, encapsulation, séparation des responsabilités

34

• Refactoring sécurisé : tester avant, refactorer, retester

35

• Conventions et lisibilité : noms parlants, fonctions courtes, séparation logique

36

• Approfondi en TP : refactoring d'un script existant avec mesure de l'impact

37

Module 6 / Tests unitaires avec pytest (1h30)

1h
38

• Pourquoi tester : robustesse, non-régression, documentation vivante

39

• Premiers tests avec pytest : structure, conventions, exécution

40

• Assertions et types de tests : tests de fonctions, paramétrage avec parametrize

41

• Fixtures pytest : préparation de données, partage entre tests

42

• Mocks et patches : principes d'isolation des dépendances externes, selon le niveau du groupe

43

• Approfondi en TP : écriture de tests pour un module Python existant

44

Module 7 / Interactions avec une base de données SQL (1h)

1h
45

• Connecteurs Python pour bases de données : psycopg, pymysql, sqlite3

46

• SQLAlchemy en panorama : connexion, exécution de requêtes et cas d'usage par rapport aux connecteurs natifs

47

• Bonnes pratiques : connexion, paramétrage des requêtes, gestion des transactions

48

• Sécurité : prévention des injections SQL, gestion des credentials

49

• Intégration pandas / SQL : read_sql, to_sql

50

• Approfondi en TP : script complet de lecture, transformation et écriture de données entre SQL et DataFrame

51

Atelier final de synthèse (1h)

1h
52

• Reprise guidée d'un mini-projet Python : identification des problèmes, priorisation des corrections, refactoring ciblé, ajout d'un test simple et sécurisation d'un flux pandas / SQL.

53

• Discussion ouverte sur les pratiques et défis rencontrés par les participants

54

• Recommandations personnalisées pour la mise en application immédiate

Informations

Durée

2 jour(s)

14h

Tarif

Sur demande