1{
2 lib,
3 buildPythonPackage,
4 cwl-upgrader,
5 cwlformat,
6 fetchFromGitHub,
7 jsonschema,
8 packaging,
9 pytest-mock,
10 pytest-xdist,
11 pytestCheckHook,
12 pythonOlder,
13 rdflib,
14 requests,
15 ruamel-yaml,
16 schema-salad,
17 setuptools,
18}:
19
20buildPythonPackage rec {
21 pname = "cwl-utils";
22 version = "0.40";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "common-workflow-language";
29 repo = "cwl-utils";
30 tag = "v${version}";
31 hash = "sha256-A9+JvtSTPfXK/FGJ8pplT06kkuatZu1fgjjmg74oTvE=";
32 };
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 cwl-upgrader
38 packaging
39 rdflib
40 requests
41 ruamel-yaml
42 schema-salad
43 ];
44
45 nativeCheckInputs = [
46 cwlformat
47 jsonschema
48 pytest-mock
49 pytest-xdist
50 pytestCheckHook
51 ];
52
53 pythonImportsCheck = [ "cwl_utils" ];
54
55 disabledTests = [
56 # Don't run tests which require Node.js
57 "test_context_multiple_regex"
58 "test_value_from_two_concatenated_expressions"
59 "test_graph_split"
60 "test_caches_js_processes"
61 "test_load_document_with_remote_uri"
62 # Don't run tests which require network access
63 "test_remote_packing"
64 "test_remote_packing_github_soft_links"
65 "test_cwl_inputs_to_jsonschema"
66 ];
67
68 disabledTestPaths = [
69 # Tests require podman
70 "tests/test_docker_extract.py"
71 # Tests requires singularity
72 "tests/test_js_sandbox.py"
73 # Circular dependencies
74 "tests/test_graph_split.py"
75 ];
76
77 meta = with lib; {
78 description = "Utilities for CWL";
79 homepage = "https://github.com/common-workflow-language/cwl-utils";
80 changelog = "https://github.com/common-workflow-language/cwl-utils/releases/tag/v${version}";
81 license = licenses.asl20;
82 maintainers = with maintainers; [ fab ];
83 };
84}