Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / asyncpg / default.nix
blobdce3a9ba0642d67145461065360b07b8e267ec6d
1 { lib
2 , fetchPypi
3 , buildPythonPackage
4 , async-timeout
5 , uvloop
6 , postgresql
7 , pythonOlder
8 , pytest-xdist
9 , pytestCheckHook
12 buildPythonPackage rec {
13   pname = "asyncpg";
14   version = "0.29.0";
15   format = "setuptools";
17   disabled = pythonOlder "3.8";
19   src = fetchPypi {
20     inherit pname version;
21     hash = "sha256-0cSeH0T/+v2aVeGpsQFZCFnYgdY56ikiUW9dnFEtNU4=";
22   };
24   # sandboxing issues on aarch64-darwin, see https://github.com/NixOS/nixpkgs/issues/198495
25   doCheck = postgresql.doCheck;
27   # required for compatibility with Python versions older than 3.11
28   # see https://github.com/MagicStack/asyncpg/blob/v0.29.0/asyncpg/_asyncio_compat.py#L13
29   propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
30     async-timeout
31   ];
33   nativeCheckInputs = [
34     uvloop
35     postgresql
36     pytest-xdist
37     pytestCheckHook
38   ];
40   preCheck = ''
41     rm -rf asyncpg/
42   '';
44   pythonImportsCheck = [
45     "asyncpg"
46   ];
48   meta = with lib; {
49     description = "Asyncio PosgtreSQL driver";
50     homepage = "https://github.com/MagicStack/asyncpg";
51     changelog = "https://github.com/MagicStack/asyncpg/releases/tag/v${version}";
52     longDescription = ''
53       Asyncpg is a database interface library designed specifically for
54       PostgreSQL and Python/asyncio. asyncpg is an efficient, clean
55       implementation of PostgreSQL server binary protocol for use with Python's
56       asyncio framework.
57     '';
58     license = licenses.asl20;
59     maintainers = with maintainers; [ eadwu ];
60   };