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