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.5.0.tar.gz (32.6 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.5.0-py3-none-any.whl (57.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: n7-1.5.0.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for n7-1.5.0.tar.gz
Algorithm Hash digest
SHA256 94ae625b01e466d8f05c9a5173bee3c0f3e6f562c4ea1fa4d9b28f76104c0358
MD5 6534792fc509ae3ba1e26d5989480b76
BLAKE2b-256 30b4f12b454252cb57e7088af38cfda4eea32dfa934c0ec9fa0e9482aa95f779

See more details on using hashes here.

File details

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

File metadata

  • Download URL: n7-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 57.9 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.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36af57f241c3f5036ce7c8f4fca19dc0d35666a0b67de28636ebb2993a7d1096
MD5 7d79f485e8804e238c6bccec6ba523ea
BLAKE2b-256 12392a69fe74a4260f0782c5c5eb196f7e92767b6e69eae9d2ef96551a206e22

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