1{ lib
2, fetchPypi
3, buildPythonPackage
4, uvloop
5, postgresql
6, pythonOlder
7, pytest-xdist
8, pytestCheckHook
9}:
10
11buildPythonPackage rec {
12 pname = "asyncpg";
13 version = "0.28.0";
14 format = "setuptools";
15
16 disabled = pythonOlder "3.7";
17
18 src = fetchPypi {
19 inherit pname version;
20 hash = "sha256-clLNw6yy9S/qo2ZCgNO814pGvWwQv9aBrP/++hEg4ng=";
21 };
22
23 # sandboxing issues on aarch64-darwin, see https://github.com/NixOS/nixpkgs/issues/198495
24 doCheck = postgresql.doCheck;
25
26 nativeCheckInputs = [
27 uvloop
28 postgresql
29 pytest-xdist
30 pytestCheckHook
31 ];
32
33 preCheck = ''
34 rm -rf asyncpg/
35 '';
36
37 pythonImportsCheck = [
38 "asyncpg"
39 ];
40
41 meta = with lib; {
42 description = "Asyncio PosgtreSQL driver";
43 homepage = "https://github.com/MagicStack/asyncpg";
44 changelog = "https://github.com/MagicStack/asyncpg/releases/tag/v${version}";
45 longDescription = ''
46 Asyncpg is a database interface library designed specifically for
47 PostgreSQL and Python/asyncio. asyncpg is an efficient, clean
48 implementation of PostgreSQL server binary protocol for use with Python's
49 asyncio framework.
50 '';
51 license = licenses.asl20;
52 maintainers = with maintainers; [ eadwu ];
53 };
54}