Que fait python-patterns ?
Principes de développement Python et prise de décision. Sélection de frameworks, patterns asynchrones, annotations de type, structure de projet. Enseigne la réflexion, pas le copier-coller.
Pourquoi ce skill ?
Ce skill est conçu pour les développeurs Python qui souhaitent aller au-delà du simple copier-coller. Il fournit un cadre de réflexion pour choisir les bons outils et architectures en fonction du contexte.
Principes clés
1. Sélection de frameworks
- FastAPI : Idéal pour les API REST asynchrones, avec performance élevée et génération automatique de documentation OpenAPI.
- Django : Recommandé pour les applications complètes nécessitant une interface d'administration, ORM puissant et batteries incluses.
- Flask : Pour les microservices ou projets simples avec un minimum de dépendances.
2. Patterns asynchrones
- Utilisez
asyncioetasync/awaitpour les opérations I/O-bound. - Préférez
anyiopour une compatibilité entre bibliothèques asynchrones. - Évitez les appels bloquants dans les boucles d'événements.
3. Annotations de type (type hints)
- Adoptez les annotations de type Python modernes (PEP 484, PEP 585).
- Utilisez
mypyoupyrightpour la vérification statique. - Exploitez
typing.Literal,TypedDict,Protocolpour des contrats clairs.
4. Structure de projet
- Organisez le code en modules et packages cohérents.
- Séparez la logique métier, les dépendances et les configurations.
- Utilisez des fichiers
pyproject.tomlpour la configuration du projet.
Exemples de décisions
| Contexte | Recommandation |
|---|---|
| API REST avec haute concurrence | FastAPI + async |
| Application web avec admin | Django + PostgreSQL |
| Microservice léger | Flask + SQLAlchemy |
| Script d'automatisation | asyncio + httpx |
Commandes utiles
# Initialiser un projet avec structure standard
mkdir mon_projet && cd mon_projet
mkdir src tests docs
# Créer un environnement virtuel avec pip
python -m venv .venv
# Installer les dépendances de développement
pip install mypy black pytest
Ressources
Licence
Ce skill est distribué sous licence MIT.