tox-ini-fmt
apply a consistent format to tox.ini
files
installation
pip install tox-ini-fmt
as a pre-commit hook
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://github.com/tox-dev/tox-ini-fmt
rev: "1.3.1"
hooks:
- id: tox-ini-fmt
args: ["-p", "fix_lint,type"]
cli
Consult the help for the latest usage:
$ tox-ini-fmt --help
usage: tox-ini-fmt [-h] [-s] [-p toxenv] tox_ini
positional arguments:
tox_ini tox ini file to format
optional arguments:
-h, --help show this help message and exit
-s, --stdout print the formatted text to the stdout (instead of update in-place)
-p toxenv tox environments that pin to the start of the envlist (comma separated)
what does it do?
It does not
- Format any other section beside
tox
/testenv:*
(other than put this sections to the end of the file)
General
boolean
fields are normalized to true
or false
- all fields are stripped of white space on both end
- values that contain a list are split one value per line (PR/merge friendly)
- indent multi-line values by four spaces, and start on new line
- substitutions within multi-line (excluding
commands
) are moved to the start of the list (order kept)
Ordering of sections
Applies the following section order:
tox
testenv
testenv:*
- py
/pypy
envs are ordered in decreasing order by python version, then apply the order defined within
envlist
part of tox
section, you can pin tox elements to the start by using the -p
flag- any other section defined within the file
tox
section
Order by:
envlist
- multi-line, start with py
envs in decreasing python order, then same with pypy
, then everything elseisolated_build
- boolean
fieldskipsdist
- boolean
fieldskip_missing_interpreters
- boolean
fieldminversion
testenv
section
Order by:
description
passenv
- multi-line, one environment name to pass per line, sorted by namesetenv
- multi-line, one environment name-value to set per line in format of key=value
, sorted by key+valuebasepython
skip_install
- boolean
fieldusedevelop
- boolean
fielddeps
- multi-line, order by package name (but keep dependencies with package names separate at end), normalize
format to remove extra spacesextras
- multi-line, one extra env per lineparallel_show_output
- boolean
fieldcommands
- one command per line, commands that wrap over multiple lines are indented with line two or later by
extra four spaces