
Développement Python
Créez des scripts Python, des services FastAPI et des suites de tests avec des outils modernes — uv, PEP 723 et meilleures pratiques pytest
Installer
Executez cette commande pour installer toutes les competences de ce plugin :
npx skillstore add @python-development Les competences seront installees dans le repertoire .claude/skills/
Aperçu
Guide d’utilisation
Amélioré par l’IAGuide détaillé
# Développement Python
Créez des scripts Python, des services FastAPI et des suites de tests avec des outils modernes — uv, PEP 723 et meilleures pratiques pytest.
10 分钟起一个带测试的 FastAPI 服务。
## Ce que fait ce plugin
Trois compétences couvrant le workflow complet du backend Python :
| Compétence | Objectif |
|------------|----------|
| **Scriptage Python** | Scripts autonomes avec uv et dépendances inline PEP 723 — aucune configuration virtualenv nécessaire |
| **Maîtrise FastAPI | Création d'API REST avec routage, validation des requêtes, middleware, auth et intégration de base de données |
| **Maîtrise pytest** | Suites de tests avec fixtures, parametrize, mocking, tests asynchrones et couverture |
## Exemple complet : Créer une API de raccourcissement d'URL avec tests
### Étape 1 : Générer le service FastAPI
```
Create a FastAPI URL shortener service with:
- POST /shorten — accepts {"url": "https://..."}, returns {"short_code": "abc123", "short_url": "http://localhost:8000/abc123"}
- GET /{short_code} — redirects to original URL
- GET /stats/{short_code} — returns click count
- Use SQLite via SQLAlchemy for storage
- Add input validation: reject invalid URLs, max URL length 2048
- Include proper error responses (404 for unknown codes, 422 for invalid input)
```
### Étape 2 : Ajouter des tests complets
```
Write pytest tests for the URL shortener:
- Test POST /shorten with valid URL returns 201 + short_code
- Test POST /shorten with invalid URL returns 422
- Test GET /{short_code} redirects correctly (status 307)
- Test GET /{short_code} with unknown code returns 404
- Test GET /stats/{short_code} returns correct click count after multiple visits
- Use httpx AsyncClient as test client
- Use a separate test database (SQLite in-memory)
- Add fixtures for: app client, sample shortened URL, database setup/teardown
```
### Étape 3 : Ajouter un script utilitaire
```
Create a Python script with PEP 723 inline dependencies that:
- Reads a CSV file of URLs (one per line)
- Calls the /shorten endpoint for each URL
- Outputs a new CSV with original_url, short_url, short_code columns
- Use uv for dependency management (httpx, csv are dependencies)
- Add retry logic for failed requests
- Include a --dry-run flag that validates URLs without shortening
```
**Résultat :** Un service API complet et testé + un script utilitaire de traitement par lots — tout généré à partir de invites en langage naturel, prêt à déployer.
## Exigences de l'environnement
- **Python 3.10+** (3.12 recommandé)
- Gestionnaire de paquets **uv** pour une résolution rapide des dépendances :
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
- Pour les projets FastAPI, les dépendances sont gérées via `pyproject.toml` ou `requirements.txt`
- Pour les scripts autonomes, les métadonnées inline PEP 723 vous permettent de déclarer les dépendances directement dans le fichier de script — aucune configuration séparée nécessaire
### Vérification rapide
```bash
python3 --version # 3.10+
uv --version # n'importe quelle version récente
```
## Gestion des erreurs
### uv non installé
```
command not found: uv
```
**Correction :** Installez uv : `curl -LsSf https://astral.sh/uv/install.sh | sh`
Alternative, revenez à pip : `pip install -r requirements.txt`
### Erreurs d'import dans les tests
```
ModuleNotFoundError: No module named 'httpx'
```
**Correction :** Installez les dépendances de test : `uv pip install httpx pytest pytest-asyncio`
### Le serveur FastAPI ne démarre pas
Causes courantes :
- Port déjà utilisé : `uvicorn app:app --port 8001`
- Dépendances manquantes : `uv pip install fastapi uvicorn sqlalchemy`
- Version de Python trop ancienne : mettez à jour vers 3.10+
### Fixtures pytest introuvables
Si les tests échouent avec `fixture not found`, vérifiez que :
- `conftest.py` est dans le répertoire de tests
- Les fonctions de fixture sont décorées avec `@pytest.fixture`
- Les fixtures asynchrones utilisent `@pytest_asyncio.fixture`Compétences
3python-scripting
Sûr 72Créer des scripts Python avec uv
L'écriture de scripts Python autonomes avec des dépendances nécessite une configuration manuelle. Cette compétence génère des scripts prêts à l'exécution avec des métadonnées intégrées PEP 723, une gestion automatique des dépendances et un解析 d'arguments CLI approprié.
fastapi-mastery
Sûr 71Créer des API REST avec FastAPI
Le développement avec FastAPI nécessite de comprendre le routage, la validation, l’authentification et les patterns async. Cette compétence fournit des tutoriels complets du niveau débutant à avancé avec des exemples de code pratiques pour construire des API prêtes pour la production.
pytest-mastery
Sûr 76Écrire et exécuter des tests Python avec pytest
Écrire des tests pour des applications Python peut être déroutant sans guidance sur les fixtures, la paramétrisation et les outils de couverture. Cette compétence fournit des modèles pytest prêts à l'emploi incluant les tests FastAPI, les fixtures et les rapports de couverture.
Plugins similaires

Boîte à outils de production média IA
Générez des images, vidéos et audio IA avec plus de 90 modèles — pipeline complet de production média du texte aux actifs finaux.
3 compétences

Postgres Schema Toolkit
Couvre la conception de schémas, la rédaction de requêtes et l'optimisation SQL pour les backends relationnels. Idéal pour les agents travaillant sur des fonctionnalités riches en données nécessitant une modélisation propre et un accès rapide.
3 compétences

Docker Container Toolkit
Containerisation Docker de bout en bout — auditez des Dockerfiles, orchestrez des builds multi-services et déployez sur Kubernetes. Un seul toolkit pour votre workflow de conteneurs.
3 compétences