CLI global pour les projets N7
Project description
N7 CLI
CLI global pour gérer les projets N7 avec Docker Compose et les tests pytest.
Table des matières
Installation
Installation depuis PyPI (Production)
Avec pip
pip install n7
Avec pipx (recommandé pour les CLI)
pipx installe les outils CLI dans des environnements virtuels isolés, évitant les conflits de dépendances.
# Installation de pipx si nécessaire
python3 -m pip install --user pipx
python3 -m pipx ensurepath
# Installation de n7
pipx install n7
Installation depuis PyPI Test
Si vous voulez tester la dernière version en développement :
pipx install --index-url https://test.pypi.org/simple/ --pip-args="--extra-index-url https://pypi.org/simple/" n7
Mise à jour
Avec pip
pip install --upgrade n7
Avec pipx
pipx upgrade n7
Pour forcer la réinstallation :
pipx reinstall n7
Commandes disponibles
Commandes globales
Afficher la version
n7 --version
n7 -v
Mode debug
Active le mode debug avec traceback complet :
n7 --debug [commande]
Aide
n7 --help
n7 -h
Commandes Docker Compose
Toutes les commandes Docker Compose sont préfixées par n7 dkc.
n7 dkc up - Démarrer les containers
Démarre les containers Docker Compose.
# Démarrage standard (en mode détaché)
n7 dkc up
# Démarrage sans mode détaché (voir les logs en direct)
n7 dkc up --no-detach
# Démarrage avec rebuild des images
n7 dkc up --build
n7 dkc up -b
# Combinaison
n7 dkc up --build --no-detach
Options :
--no-detach: Ne pas démarrer en mode détaché (affiche les logs)-b, --build: Reconstruire les images avant de démarrer
n7 dkc down - Arrêter les containers
Arrête et supprime les containers Docker Compose.
# Arrêt standard
n7 dkc down
# Arrêt avec suppression des volumes
n7 dkc down --volumes
n7 dkc down -v
Options :
-v, --volumes: Supprime également tous les volumes associés
n7 dkc l - Afficher les logs
Affiche les logs des containers.
# Logs de tous les services
n7 dkc l
# Logs d'un service spécifique
n7 dkc l api
n7 dkc l db
# Suivre les logs en temps réel
n7 dkc l --follow
n7 dkc l -f
# Logs d'un service en mode suivi
n7 dkc l api -f
Arguments :
service: Nom du service (optionnel, tous les services si non spécifié)
Options :
-f, --follow: Suivre les logs en temps réel
n7 dkc sh - Ouvrir un shell dans un container
Ouvre un shell interactif dans un container.
# Shell bash dans le service par défaut
n7 dkc sh
# Shell dans un service spécifique
n7 dkc sh --service api
n7 dkc sh -s db
# Utiliser sh au lieu de bash
n7 dkc sh --no-bash
Options :
-s, --service: Service Docker cible (défaut : service configuré ou 'api')--no-bash: Utilisershau lieu debash
n7 dkc mana - Exécuter manage.py (Django)
Exécute des commandes Django manage.py dans un container.
# Exemples de commandes Django
n7 dkc mana migrate
n7 dkc mana makemigrations
n7 dkc mana createsuperuser
n7 dkc mana shell
n7 dkc mana collectstatic --noinput
# Sur un service spécifique
n7 dkc mana migrate --service api
n7 dkc mana -s api migrate
Arguments :
args...: Arguments à passer à manage.py
Options :
-s, --service: Service Docker cible (défaut : service configuré ou 'api')
n7 dkc t - Tests pytest dans un container
Exécute les tests pytest dans un container Docker.
# Tous les tests
n7 dkc t
# Tests d'un fichier ou répertoire spécifique
n7 dkc t tests/test_api.py
n7 dkc t tests/unit/
# Mode verbose
n7 dkc t -v
# Arrêt au premier échec
n7 dkc t -x
# Exécution parallèle
n7 dkc t -n auto
n7 dkc t -n 4
# Avec couverture de code
n7 dkc t --cov=myapp
n7 dkc t --cov=myapp --cov-report=html
n7 dkc t --cov=myapp --cov-report=term-missing
# Rejouer uniquement les tests échoués
n7 dkc t --lf
# Exécuter les tests échoués en premier
n7 dkc t --ff
# Options Django
n7 dkc t --create-db
n7 dkc t --migrations
# Service spécifique
n7 dkc t --service api
n7 dkc t -s api
# Combinaisons
n7 dkc t tests/ -v -x -n auto --cov=myapp --cov-report=html
Arguments :
path: Chemin vers les tests (optionnel)
Options :
-v: Mode verbose-x: Arrêt au premier échec-n: Nombre de workers pour exécution parallèle (auto, 2, 4...)--cov: Module Python pour la couverture de code--cov-report: Type de rapport (html, term-missing)--lf: Rejouer uniquement les tests échoués--ff: Exécuter les tests échoués en premier--create-db: Forcer la création de la base de données de test--migrations: Forcer l'exécution des migrations-s, --service: Service Docker cible
Commandes de tests
n7 t - Tests pytest en local
Exécute les tests pytest localement (sans Docker).
# Tous les tests
n7 t
# Tests d'un fichier ou répertoire spécifique
n7 t tests/test_api.py
n7 t tests/unit/
# Avec toutes les options disponibles (identiques à n7 dkc t)
n7 t -v
n7 t -x
n7 t -n auto
n7 t --cov=myapp --cov-report=html
n7 t --lf
n7 t --ff
n7 t --create-db
n7 t --migrations
Arguments et options : Identiques à n7 dkc t, sauf --service qui n'est pas disponible.
Développement
Installation pour le développement
# Cloner le projet
git clone <repository-url>
cd cli-nseven
# Créer un environnement virtuel
python3.13 -m venv .venv
source .venv/bin/activate
# Installer les dépendances
pip install -r requirements.txt
# Installer en mode développement
pip install -e .
Cela permet d'utiliser la commande n7 directement avec votre code en cours de développement.
Tests
# Lancer tous les tests
pytest
# Mode verbose
pytest -v
# Avec couverture
pytest --cov=n7 --cov-report=html
Outils de développement
Formatter (Black)
black .
Linter (Ruff)
# Vérification
ruff check
# Correction automatique
ruff check --fix
Type checking (mypy)
mypy .
Tout en une commande
Si n7 est installé en mode dev :
# Vérification seule
n7 py-lint
# Avec correction automatique
n7 py-lint --fix
Configuration
Le CLI recherche automatiquement les fichiers de configuration Docker :
docker-compose.ymlou fichier spécifié.envou fichier d'environnement spécifié
Configuration via fichier .n7.yml (optionnel) :
docker:
compose_file: docker-compose.yml
env_file: .env
default_service: api
Licence
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file n7-1.4.0.tar.gz.
File metadata
- Download URL: n7-1.4.0.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ade417cf3572e8ed1b0ebf2898563229db0803c12f5c9f0e5ecec2982f4c025
|
|
| MD5 |
3c964635e039b4b1aed8c349007c6060
|
|
| BLAKE2b-256 |
3f2169df54cf3c3b378374cfd39dd09777fea7b36c86d1c6c1e9fe4b3fe3fe32
|
File details
Details for the file n7-1.4.0-py3-none-any.whl.
File metadata
- Download URL: n7-1.4.0-py3-none-any.whl
- Upload date:
- Size: 26.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5de8747a94787ec86102bbae345306944e5fa7b1cec3ada70d82a4297161880
|
|
| MD5 |
5345dc65d7223ac3de5b6f0fd21cc2d4
|
|
| BLAKE2b-256 |
3bc03e8876e6ff7fc7e8d24658f8b05f4adecdadf5f801e8fad717d787d05d23
|