Skip to main content

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 : Utiliser sh au lieu de bash

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.yml ou fichier spécifié
  • .env ou 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

n7-1.4.1.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

n7-1.4.1-py3-none-any.whl (26.5 kB view details)

Uploaded Python 3

File details

Details for the file n7-1.4.1.tar.gz.

File metadata

  • Download URL: n7-1.4.1.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

Hashes for n7-1.4.1.tar.gz
Algorithm Hash digest
SHA256 83ede6722743188c56e3aff7bf8f2b7d154254992aea9e4a0071c4b2e1edbc5d
MD5 6d93af5183e48d2921e34f1e5dbeb6ce
BLAKE2b-256 06a3934716b0a00de49e51c972d538ecfda4db6a3c248f92e37850c5265e670c

See more details on using hashes here.

File details

Details for the file n7-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: n7-1.4.1-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

Hashes for n7-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f39b3bc9fea17eae4ea0c9661b450f91457bc027b59c37e2010d27792d31b5d8
MD5 82b0d29327dc26136f247bb53d515b65
BLAKE2b-256 c19ae8f6acd59430087b0a424f2e38c4d242f7452060fa9206941a72cf0ac642

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page