1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, flit-core
5, pytestCheckHook
6, pythonOlder
7}:
8
9buildPythonPackage rec {
10 pname = "aiomultiprocess";
11 version = "0.9.0";
12 format = "pyproject";
13 disabled = pythonOlder "3.6";
14
15 src = fetchFromGitHub {
16 owner = "omnilib";
17 repo = pname;
18 rev = "v${version}";
19 hash = "sha256-yOP69FXDb2Grmtszx7oa6uiJGUar8su3KwqQPI+xjrw=";
20 };
21
22 nativeBuildInputs = [ flit-core ];
23
24 nativeCheckInputs = [ pytestCheckHook ];
25
26 pytestFlagsArray = [ "aiomultiprocess/tests/*.py" ];
27
28 disabledTests = [
29 # tests are flaky and make the whole test suite time out
30 "test_pool_worker_exceptions"
31 "test_pool_worker_max_tasks"
32 "test_pool_worker_stop"
33 ];
34
35 pythonImportsCheck = [ "aiomultiprocess" ];
36
37 meta = with lib; {
38 description = "Python module to improve performance";
39 longDescription = ''
40 aiomultiprocess presents a simple interface, while running a full
41 AsyncIO event loop on each child process, enabling levels of
42 concurrency never before seen in a Python application. Each child
43 process can execute multiple coroutines at once, limited only by
44 the workload and number of cores available.
45 '';
46 homepage = "https://github.com/omnilib/aiomultiprocess";
47 license = with licenses; [ mit ];
48 maintainers = [ maintainers.fab ];
49 };
50}