1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 packaging,
7 pluggy,
8 py,
9 six,
10 virtualenv,
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.28.4";
28 format = "pyproject";
29
30 src = fetchFromGitHub {
31 owner = "tox-dev";
32 repo = "tox";
33 tag = version;
34 hash = "sha256-EKJsFf4LvfDi3OL6iNhKEBl5zlpdLET9RkfHEP7E9xU=";
35 };
36
37 postPatch = ''
38 substituteInPlace pyproject.toml \
39 --replace "packaging>=22" "packaging"
40 '';
41
42 nativeBuildInputs = [
43 hatchling
44 hatch-vcs
45 ];
46
47 propagatedBuildInputs = [
48 cachetools
49 chardet
50 colorama
51 filelock
52 packaging
53 platformdirs
54 pluggy
55 py
56 pyproject-api
57 six
58 toml
59 virtualenv
60 ]
61 ++ lib.optionals (pythonOlder "3.11") [ tomli ];
62
63 doCheck = false; # infinite recursion via devpi-client
64
65 passthru.tests = {
66 version = testers.testVersion { package = tox; };
67 };
68
69 meta = with lib; {
70 changelog = "https://github.com/tox-dev/tox/releases/tag/${src.tag}";
71 description = "Generic virtualenv management and test command line tool";
72 mainProgram = "tox";
73 homepage = "https://github.com/tox-dev/tox";
74 license = licenses.mit;
75 maintainers = [ ];
76 };
77}