Skip to main content

Python : linter et formatter

Cette version garde les limites générales du projet C++ et confie les règles Python courantes à Ruff. Elle utilise l'AST et tokenize pour distinguer code, chaînes, docstrings et commentaires.

Installation

Depuis ce dépôt :

python -m pip install -e ./python

Pour activer la détection de la langue des commentaires, installer l'extra optionnel (Lingua est volumineux) :

python -m pip install -e "./python[comments]"

Depuis un autre projet, une installation non éditable fonctionne aussi : python -m pip install <chemin-vers-ce-dépôt>/python. La commande nk-python est ensuite disponible dans le même environnement Python. On peut également utiliser python -m nk_python.

Utilisation

nk-python check Src Tests              # Ruff et règles propres, sans écriture
nk-python format Src Tests             # trie les imports et formate en place
nk-python check fichier.py            # fichier précis
nk-python check . --max-files 10       # seuil de dossier personnalisé

Sans chemin, la commande traite le dossier courant. Les sous-dossiers de cache, d'environnement virtuel et de construction sont ignorés. Cela inclut tous les dossiers dont le nom commence par .venv, comme .venv-cardd et .venv-vision. check contrôle aussi le formatage Ruff et retourne un code non nul si une règle échoue. format applique le tri des imports Ruff et ruff format; relancer check pour les diagnostics qui ne se corrigent pas automatiquement.

Les diagnostics s'affichent sans extraits de code, avec des chemins relatifs au dossier courant. La sortie de check commence par un résumé : fichiers analysés, nombre de warnings du linter (Ruff et règles PY…), problèmes d'ordre des imports et fichiers à reformater. Elle présente ensuite les diagnostics du linter, puis une section formatter à la fin : ordre des imports et fichiers à reformater. Cette dernière correspond aux corrections appliquées par format. Les autres corrections automatiques proposées par Ruff ne sont pas appliquées par cette commande.

Règles

Code Contrôle
PY001 Ligne de 120 caractères maximum, commentaires compris.
PY002 Fichier de 120 lignes maximum.
PY003 Fonction ou méthode de 40 lignes maximum, signature comprise.
PY004 Cinq paramètres maximum ; self ou cls est exclu pour les méthodes.
PY005 Commentaire de fin de ligne interdit, sauf directive d'outil.
PY006 Commentaire dans une fonction interdit, sauf directive d'outil ; utiliser une docstring ou clarifier le code.
PY007 Commentaire qui semble non anglais ; actif si l'extra comments est installé. Les textes trop courts ou ambigus sont ignorés.
PY008 Huit fichiers .py/.pyi directs maximum dans un dossier parcouru.

Ruff vérifie en plus les erreurs Python (E4, E7, E9, F), l'ordre des imports (I), les erreurs fréquentes (B), certaines modernisations sûres (UP) et la variable créée uniquement pour être retournée (RET504). Sa configuration est fournie par l'outil, donc les mêmes règles s'appliquent depuis un autre projet. Le formatter impose une indentation de quatre espaces, des guillemets doubles et des fins de ligne LF. Les règles C++ propres aux accolades, #include, modules et initialiseurs désignés ne s'appliquent pas à Python.

Les directives usuelles (# noqa, # type: ignore, # pylint:, # fmt:, # ruff:, # isort: et # pragma: no cover) restent permises. Les docstrings ne sont pas des commentaires # et restent autorisées dans les fonctions.

Metadata

Release files for nk-python-style 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nk-python-style 0.1.0
File Size Uploaded Provenance
nk_python_style-0.1.0.tar.gz 12.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nk-python-style 0.1.0
File Interpreter ABI Platform
nk_python_style-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.8 kB

Release files / nk_python_style-0.1.0.tar.gz

Download URL nk_python_style-0.1.0.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7a84860db09f49d824daef3ee441cf41a167135c2fa6452a208695077e2bb6a6
BLAKE2b-256 checksum
How to use checksums
39b44cedb7e26239c26988509297e5bd8875bec1a721fd8dfaabca8754c95d2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / nk_python_style-0.1.0-py3-none-any.whl

Download URL nk_python_style-0.1.0-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dac51f03805be26e6df82c98bbd3bf8b32aaa89ce2afc862e52185c88735dc2b
BLAKE2b-256 checksum
How to use checksums
e5d3e0d9f4f7dea551b420230b63da16bf693054a9c2ff8a4072e33f59deaa65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Security for nk-python-style 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page