1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 hatch-vcs,
7 openssh,
8 ps,
9 psutil,
10 pytest-mock,
11 pytest-timeout,
12 pytestCheckHook,
13}:
14
15buildPythonPackage rec {
16 pname = "plumbum";
17 version = "1.8.3";
18 format = "pyproject";
19
20 src = fetchFromGitHub {
21 owner = "tomerfiliba";
22 repo = "plumbum";
23 rev = "refs/tags/v${version}";
24 hash = "sha256-k2H/FBQAWrCN1P587s/OhiCGNasMKEFJYIBIU808rlE=";
25 };
26
27 postPatch = ''
28 substituteInPlace pyproject.toml \
29 --replace '"--cov-config=setup.cfg", ' ""
30 '';
31
32 nativeBuildInputs = [
33 hatchling
34 hatch-vcs
35 ];
36
37 nativeCheckInputs = [
38 openssh
39 ps
40 psutil
41 pytest-mock
42 pytest-timeout
43 pytestCheckHook
44 ];
45
46 preCheck = ''
47 export HOME=$TMP
48 '';
49
50 disabledTests = [
51 # broken in nix env
52 "test_change_env"
53 "test_dictlike"
54 "test_local"
55 # incompatible with pytest 7
56 "test_incorrect_login"
57 ];
58
59 disabledTestPaths = [
60 # incompatible with pytest7
61 # https://github.com/tomerfiliba/plumbum/issues/594
62 "tests/test_remote.py"
63 ];
64
65 meta = with lib; {
66 changelog = "https://github.com/tomerfiliba/plumbum/releases/tag/v${version}";
67 description = " Plumbum: Shell Combinators ";
68 homepage = " https://github.com/tomerfiliba/plumbum ";
69 license = licenses.mit;
70 maintainers = with maintainers; [ ];
71 };
72}