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