nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 hatch-vcs,
7 attrs,
8 click,
9 click-default-group,
10 networkx,
11 optree,
12 packaging,
13 pluggy,
14 rich,
15 sqlalchemy,
16 universal-pathlib,
17 pytestCheckHook,
18 cloudpickle,
19 nbmake,
20 pexpect,
21 pytest-xdist,
22 syrupy,
23 git,
24}:
25
26buildPythonPackage rec {
27 pname = "pytask";
28 version = "0.5.8";
29 pyproject = true;
30
31 src = fetchFromGitHub {
32 owner = "pytask-dev";
33 repo = "pytask";
34 tag = "v${version}";
35 hash = "sha256-tQUvqqbFUO3cw+dVPfCKiYyhwX31vqUBXr7GrRfPC+A=";
36 };
37
38 build-system = [
39 hatchling
40 hatch-vcs
41 ];
42
43 dependencies = [
44 attrs
45 click
46 click-default-group
47 networkx
48 optree
49 packaging
50 pluggy
51 rich
52 sqlalchemy
53 universal-pathlib
54 ];
55
56 nativeCheckInputs = [
57 pytestCheckHook
58 cloudpickle
59 git
60 nbmake
61 pexpect
62 pytest-xdist
63 syrupy
64 ];
65
66 # The test suite runs the installed command for e2e tests
67 preCheck = ''
68 export PATH="$PATH:$out/bin";
69 '';
70
71 disabledTests = [
72 # This accesses the network
73 "test_download_file"
74 # Racy
75 "test_more_nested_pytree_and_python_node_as_return_with_names"
76 # Without uv, subprocess unexpectedly doesn't fail
77 "test_pytask_on_a_module_that_uses_the_functional_api"
78 # Timeout
79 "test_pdb_interaction_capturing_twice"
80 "test_pdb_interaction_capturing_simple"
81 ];
82
83 meta = {
84 description = "Workflow management system that facilitates reproducible data analyses";
85 homepage = "https://github.com/pytask-dev/pytask";
86 changelog = "https://github.com/pytask-dev/pytask/releases/tag/${src.tag}";
87 license = lib.licenses.mit;
88 maintainers = with lib.maintainers; [ erooke ];
89 };
90}