1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, packaging
6, pluggy
7, py
8, six
9, virtualenv
10, setuptools-scm
11, toml
12, tomli
13, filelock
14, hatchling
15, hatch-vcs
16, platformdirs
17, pyproject-api
18, colorama
19, chardet
20, cachetools
21, testers
22, tox
23}:
24
25buildPythonPackage rec {
26 pname = "tox";
27 version = "4.11.3";
28 format = "pyproject";
29
30 src = fetchFromGitHub {
31 owner = "tox-dev";
32 repo = "tox";
33 rev = "refs/tags/${version}";
34 hash = "sha256-VLoWRAiQ1TP9S0f8TKwQ0H2Lgemd+dTzSM+TjhioDMk=";
35 };
36
37 postPatch = ''
38 substituteInPlace pyproject.toml \
39 --replace "packaging>=22" "packaging"
40 '';
41
42 SETUPTOOLS_SCM_PRETEND_VERSION = version;
43
44 nativeBuildInputs = [
45 hatchling
46 hatch-vcs
47 ];
48
49 propagatedBuildInputs = [
50 cachetools
51 chardet
52 colorama
53 filelock
54 packaging
55 platformdirs
56 pluggy
57 py
58 pyproject-api
59 six
60 toml
61 virtualenv
62 ] ++ lib.optionals (pythonOlder "3.11") [
63 tomli
64 ];
65
66 doCheck = false; # infinite recursion via devpi-client
67
68 passthru.tests = {
69 version = testers.testVersion { package = tox; };
70 };
71
72 meta = with lib; {
73 changelog = "https://github.com/tox-dev/tox/releases/tag/${version}";
74 description = "A generic virtualenv management and test command line tool";
75 homepage = "https://github.com/tox-dev/tox";
76 license = licenses.mit;
77 maintainers = with maintainers; [ ];
78 };
79}