| name | python-pep8 |
| description | Respecter le guide de style PEP 8 pour le code 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","pep8","style-guide","formatting","clean-code"],"related_skills":["python-pep257","python-pep484","python-pep20","simplify-code"]}} |
Guide de Style de Code Python (PEP 8)
Vue d'ensemble
Cette compétence décrit les règles et conventions de mise en forme et de style définies dans la PEP 8 (Style Guide for Python Code). Son respect garantit un code lisible, homogène et facilement maintenable par d'autres développeurs ou agents IA.
1. Mise en page du code (Layout)
1.1 Indentation
- Utilisez exclusivement 4 espaces par niveau d'indentation. Ne mélangez jamais les tabulations et les espaces.
- Alignement des lignes de continuation :
foo = long_function_name(var_one, var_two,
var_three, var_four)
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
1.2 Longueur maximale des lignes
- Limitez toutes les lignes de code à un maximum de 79 caractères.
- Pour les docstrings et les commentaires, limitez la longueur à 72 caractères.
- Utilisez le pliage de ligne implicite de Python entre parenthèses, crochets et accolades plutôt que l'anti-slash
\.
1.3 Coupure de ligne avant un opérateur binaire
1.4 Lignes vides
- Séparez les fonctions de premier niveau et les définitions de classes par deux lignes vides.
- Séparez les définitions de méthodes à l'intérieur d'une classe par une seule ligne vide.
1.5 Encodage du fichier source
- Le code dans les fichiers sources Python doit toujours utiliser l'encodage UTF-8.
2. Imports
2.1 Structuration
2.2 Recommandations
- Privilégiez les imports absolus (
from mypkg.sibling import foo).
- Évitez absolument les imports globaux avec caractère générique (
from module import *), car ils polluent l'espace de noms.
3. Espaces dans les expressions
4. Règles de Nommage (Naming Conventions)
| Élément | Format de Nommage | Exemple |
|---|
| Packages / Modules | Lettres minuscules, tirets bas autorisés si nécessaire. | my_package, utils.py |
| Classes | PascalCase (Capitalisation de chaque mot). | UserProfile, SessionManager |
| Fonctions | snake_case (minuscules séparées par des tirets bas). | calculate_total(), get_user() |
| Variables | snake_case. | user_id, retry_count |
| Méthodes | snake_case. | update_status(), _internal_reset() |
| Constantes | UPPER_CASE (capitales séparées par des tirets bas). | MAX_RETRIES, TIMEOUT_SECONDS |
| Exceptions | PascalCase, doit se terminer par Error. | DatabaseConnectionError |
- Attributs protégés : Utilisez un seul tiret bas en préfixe (
_protected_attr) pour les variables et fonctions internes.
- Attributs privés : Utilisez un double tiret bas (
__private_attr) pour déclencher le masquage de nom (name mangling) et éviter les conflits dans les sous-classes.
5. Recommandations de programmation
6. Outils d'analyse et de validation automatique
Pour forcer et vérifier la conformité avec la PEP 8 sur votre espace de travail, vous pouvez appeler les commandes suivantes via l'outil `terminal` :