有没有办法向 运行 匹配名称或组的环境询问 tox?

Is there a way to ask tox to run environments matching a name or by group?

我有一个 tox.ini 有几个环境,就像这个例子:

[tox]
envlist =
    py37,
    py38,
    py39,
    lint-{foo,bar,baz}
...

对于我的几个用户,一次只有其中的一个子集有用,通常是所有 py3 所有 lint- 个.

是否有这样一种语法,而不是 tox -e py37,py38,py39,可以说“运行 所有环境(tox 通过 tox -a 找到的子集)匹配 py3 "?

或者,有没有一种方法可以将 envs 分组,这样就可以说“运行 the test envs”或“运行 the cleanup envs”而不失去了将 tox 呼叫给 运行 所有人的能力?

我可以编写一个单独的脚本来处理这个问题,但我正在寻找一种内置的匹配方式。

最接近按名称过滤 tox 环境的内置方法是 TOX_SKIP_ENV 环境变量,tox 使用每个环境名称作为 re.match (see source) 的模式,跳过那些匹配。

因此,例如,对于仅 运行 lint- 前缀环境,可以:

env TOX_SKIP_ENV='^(?!lint-)' tox

或者,跳过名称中任意位置带有 pybar 的所有环境...

env TOX_SKIP_ENV='.*?(py|bar)' tox

那里一个(currently unmaintained) tox plugin, tox-tags,目的是大致提供我想的tagging/grouping功能。