1{
2 lib,
3 stdenv,
4 aiocontextvars,
5 aiohttp,
6 async-timeout,
7 buildPythonPackage,
8 colorlog,
9 croniter,
10 fastapi,
11 fetchPypi,
12 logging-journald,
13 poetry-core,
14 pytestCheckHook,
15 pythonOlder,
16 raven,
17 rich,
18 setproctitle,
19 typing-extensions,
20 uvloop,
21}:
22
23buildPythonPackage rec {
24 pname = "aiomisc";
25 version = "17.5.19";
26 pyproject = true;
27
28 disabled = pythonOlder "3.8";
29
30 src = fetchPypi {
31 inherit pname version;
32 hash = "sha256-0tcWfi4zxqDDMknDPOLNm+S+K1qmHQ5n/PqNFyNbwZg=";
33 };
34
35 build-system = [ poetry-core ];
36
37 dependencies =
38 [ colorlog ]
39 ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ]
40 ++ lib.optionals stdenv.isLinux [ logging-journald ];
41
42 nativeCheckInputs = [
43 aiocontextvars
44 async-timeout
45 fastapi
46 pytestCheckHook
47 setproctitle
48 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
49
50 passthru.optional-dependencies = {
51 aiohttp = [ aiohttp ];
52 #asgi = [ aiohttp-asgi ];
53 cron = [ croniter ];
54 #carbon = [ aiocarbon ];
55 raven = [
56 aiohttp
57 raven
58 ];
59 rich = [ rich ];
60 uvloop = [ uvloop ];
61 };
62
63 pythonImportsCheck = [ "aiomisc" ];
64
65 # Upstream stopped tagging with 16.2
66 doCheck = false;
67
68 # disabledTestPaths = [
69 # # Dependencies are not available at the moment
70 # "tests/test_entrypoint.py"
71 # "tests/test_raven_service.py"
72 # ];
73
74 meta = with lib; {
75 description = "Miscellaneous utils for asyncio";
76 homepage = "https://github.com/aiokitchen/aiomisc";
77 changelog = "https://github.com/aiokitchen/aiomisc/blob/master/CHANGELOG.md";
78 license = licenses.asl20;
79 maintainers = with maintainers; [ fab ];
80 };
81}