apply a consistent format to tox.ini
files
pip install tox-ini-fmt
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"]
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)
- Format any other section beside
tox
/testenv:*
(other than put this sections to the end of the file)
boolean
fields are normalized totrue
orfalse
- 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)
Applies the following section order:
tox
testenv
testenv:*
-py
/pypy
envs are ordered in decreasing order by python version, then apply the order defined withinenvlist
part oftox
section, you can pin tox elements to the start by using the-p
flag- any other section defined within the file
Order by:
envlist
- multi-line, start withpy
envs in decreasing python order, then same withpypy
, then everything elseisolated_build
-boolean
fieldskipsdist
-boolean
fieldskip_missing_interpreters
-boolean
fieldminversion
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 ofkey=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