1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, setuptools
6, wheel
7, black
8, cloudpathlib
9, confection
10, isort
11, mypy
12, packaging
13, pre-commit
14, pydantic
15, pytest
16, requests
17, ruff
18, smart-open
19, srsly
20, typer
21, types-requests
22, types-setuptools
23, wasabi
24, pytestCheckHook
25}:
26
27buildPythonPackage rec {
28 pname = "weasel";
29 version = "0.3.4";
30 pyproject = true;
31
32 disabled = pythonOlder "3.6";
33
34 src = fetchFromGitHub {
35 owner = "explosion";
36 repo = "weasel";
37 rev = "refs/tags/v${version}";
38 hash = "sha256-6Ck8R10/YW2Nc6acNk2bzgyqSg+OPqwyJjhUgXP/umw=";
39 };
40
41 nativeBuildInputs = [
42 setuptools
43 wheel
44 ];
45
46 propagatedBuildInputs = [
47 black
48 cloudpathlib
49 confection
50 isort
51 mypy
52 packaging
53 pre-commit
54 pydantic
55 pytest
56 requests
57 ruff
58 smart-open
59 srsly
60 typer
61 types-requests
62 types-setuptools
63 wasabi
64 ];
65
66 pythonImportsCheck = [ "weasel" ];
67
68 nativeCheckInputs = [
69 pytestCheckHook
70 ];
71
72 disabledTests = [
73 # This test requires internet access
74 "test_project_assets"
75 ];
76
77 meta = with lib; {
78 description = "Weasel: A small and easy workflow system";
79 homepage = "https://github.com/explosion/weasel/";
80 license = licenses.mit;
81 maintainers = with maintainers; [ GaetanLepage ];
82 };
83}