| name | python-pep484 |
| description | Appliquer le typage statique selon la PEP 484 en Python. |
| version | 1.0.0 |
| author | EVA Agent (adapté de obra/superpowers) |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"EVA":{"tags":["python","pep484","typing","mypy","static-analysis"],"related_skills":["python-pep8","python-pep257","python-pep20","simplify-code"]}} |
Typage Statique en Python (PEP 484, PEP 585 & PEP 604)
Vue d'ensemble
Cette compétence détaille l'utilisation des annotations de type (Type Hints) introduites par la PEP 484, complétées par les syntaxes modernes de la PEP 585 (génériques intégrés dans les collections standards) et de la PEP 604 (opérateur d'union de type |). L'usage du typage statique améliore la robustesse du code, évite de nombreuses erreurs d'exécution et optimise l'autocomplétion dans les éditeurs de code.
1. Syntaxe de base
1.1 Variables et Fonctions
2. Types Complexes et Syntaxe Moderne
2.1 Collections Génériques (PEP 585)
- Depuis Python 3.9+, utilisez directement les classes intégrées en minuscules (ex:
list, dict, set, tuple) au lieu d'importer List, Dict, Set depuis le module typing :
users: list[str] = ["Alice", "Bob"]
configurations: dict[str, int] = {"port": 8080, "timeout": 30}
coordinates: tuple[float, float] = (48.8566, 2.3522)
2.2 Unions de Types et Optional (PEP 604)
2.3 Utilisation de Any
3. Types Avancés
3.1 Callables (Fonctions en argument)
- Utilisez
collections.abc.Callable ou typing.Callable pour typer des fonctions ou des callbacks :
from collections.abc import Callable
def execute_callback(callback: Callable[[str, int], bool]) -> None:
callback("success", 200)
3.2 Protocoles (Sous-typage Structurel / Duck Typing)
4. Outils de validation statique des types
L'interpréteur Python classique ignore les annotations de type lors de l'exécution. Vous devez utiliser un linter de type statique externe pour détecter les anomalies :