1{
2 lib,
3 async-timeout,
4 buildPythonPackage,
5 defang,
6 dnspython,
7 eval-type-backport,
8 fetchFromGitHub,
9 playwrightcapture,
10 poetry-core,
11 pydantic,
12 pythonOlder,
13 redis,
14 requests,
15 ua-parser,
16}:
17
18buildPythonPackage rec {
19 pname = "lacuscore";
20 version = "1.14.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.9";
24
25 src = fetchFromGitHub {
26 owner = "ail-project";
27 repo = "LacusCore";
28 tag = "v${version}";
29 hash = "sha256-szcvg4jfJ84kHYWjPBwecfvfsc258SS0OIuYle1lC1g=";
30 };
31
32 pythonRelaxDeps = [
33 "pydantic"
34 "redis"
35 "requests"
36 ];
37
38 build-system = [ poetry-core ];
39
40 dependencies =
41 [
42 defang
43 dnspython
44 playwrightcapture
45 pydantic
46 redis
47 requests
48 ua-parser
49 ]
50 ++ playwrightcapture.optional-dependencies.recaptcha
51 ++ redis.optional-dependencies.hiredis
52 ++ ua-parser.optional-dependencies.regex
53 ++ lib.optionals (pythonOlder "3.11") [ async-timeout ]
54 ++ lib.optionals (pythonOlder "3.10") [ eval-type-backport ];
55
56 # Module has no tests
57 doCheck = false;
58
59 pythonImportsCheck = [ "lacuscore" ];
60
61 meta = with lib; {
62 description = "Modulable part of Lacus";
63 homepage = "https://github.com/ail-project/LacusCore";
64 changelog = "https://github.com/ail-project/LacusCore/releases/tag/v${version}";
65 license = licenses.bsd3;
66 maintainers = with maintainers; [ fab ];
67 };
68}