1{
2 lib,
3 aiohttp,
4 async-timeout,
5 buildPythonPackage,
6 fetchFromGitHub,
7 fetchpatch,
8 pytest-aiohttp,
9 pytest-cov-stub,
10 pytestCheckHook,
11 pythonOlder,
12 setuptools,
13}:
14
15buildPythonPackage rec {
16 pname = "aiojobs";
17 version = "1.3.0";
18 format = "pyproject";
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "aio-libs";
24 repo = "aiojobs";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-FNc71YyAjtR+hd0UOqFAy6XW0PwHSlM76C3ecPM5vsU=";
27 };
28
29 nativeBuildInputs = [ setuptools ];
30
31 propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ async-timeout ];
32
33 optional-dependencies = {
34 aiohttp = [ aiohttp ];
35 };
36
37 nativeCheckInputs = [
38 pytestCheckHook
39 pytest-aiohttp
40 pytest-cov-stub
41 ] ++ lib.flatten (builtins.attrValues optional-dependencies);
42
43 pythonImportsCheck = [ "aiojobs" ];
44
45 disabledTests = [
46 # RuntimeWarning: coroutine 'Scheduler._wait_failed' was never awaited
47 "test_scheduler_must_be_created_within_running_loop"
48 ];
49
50 __darwinAllowLocalNetworking = true;
51
52 meta = {
53 description = "Jobs scheduler for managing background task (asyncio)";
54 homepage = "https://github.com/aio-libs/aiojobs";
55 changelog = "https://github.com/aio-libs/aiojobs/blob/v${version}/CHANGES.rst";
56 license = lib.licenses.asl20;
57 maintainers = with lib.maintainers; [ cmcdragonkai ];
58 };
59}