@@ -0,0 +1,44 @@
1+{ lib
2+, fetchFromGitHub
3+, buildPythonApplication
4+, click
5+, glob2
6+, parso
7+, pony
8+, junit-xml
9+, pythonOlder
10+, testVersion
11+}:
12+
13+let self = buildPythonApplication rec {
14+ pname = "mutmut";
15+ version = "2.2.0";
16+
17+ src = fetchFromGitHub {
18+ repo = pname;
19+ owner = "boxed";
20+ rev = version;
21+ hash = "sha256-G+OL/9km2iUeZ1QCpU73CIWVWMexcs3r9RdCnAsESnY=";
22+ };
23+
24+ postPatch = ''
25+ substituteInPlace requirements.txt --replace 'junit-xml==1.8' 'junit-xml==1.9'
26+ '';
27+
28+ disabled = pythonOlder "3.7";
29+
30+ doCheck = false;
31+
32+ propagatedBuildInputs = [ click glob2 parso pony junit-xml ];
33+
34+ passthru.tests.version = testVersion { package = self; };
35+
36+ meta = with lib; {
37+ description = "mutation testing system for Python, with a strong focus on ease of use";
38+ homepage = "https://github.com/boxed/mutmut";
39+ changelog = "https://github.com/boxed/mutmut/blob/${version}/HISTORY.rst";
40+ license = licenses.bsd3;
41+ maintainers = with maintainers; [ synthetica ];
42+ };
43+};
44+in self