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