1{
2 lib,
3 aiohttp,
4 aresponses,
5 async-timeout,
6 backoff,
7 buildPythonPackage,
8 fetchFromGitHub,
9 poetry-core,
10 pytest-asyncio,
11 pytestCheckHook,
12 pythonOlder,
13 sigstore,
14 writableTmpDirAsHomeHook,
15}:
16
17buildPythonPackage rec {
18 pname = "aiogithubapi";
19 version = "25.5.0";
20 pyproject = true;
21
22 disabled = pythonOlder "3.9";
23
24 src = fetchFromGitHub {
25 owner = "ludeeus";
26 repo = "aiogithubapi";
27 tag = version;
28 hash = "sha256-zl9QpFpkvSTs0BUDMBmwTeLY1YvNRSqbkIZ5LDUP3zw=";
29 };
30
31 __darwinAllowLocalNetworking = true;
32
33 postPatch = ''
34 # Upstream is releasing with the help of a CI to PyPI, GitHub releases
35 # are not in their focus
36 substituteInPlace pyproject.toml \
37 --replace-fail 'version = "0"' 'version = "${version}"'
38 '';
39
40 pythonRelaxDeps = [ "async-timeout" ];
41
42 build-system = [ poetry-core ];
43
44 dependencies = [
45 aiohttp
46 async-timeout
47 backoff
48 ];
49
50 # Optional dependencies for deprecated-verify are not added
51 # Only sigstore < 2 is supported
52
53 nativeCheckInputs = [
54 aresponses
55 pytest-asyncio
56 pytestCheckHook
57 writableTmpDirAsHomeHook
58 ];
59
60 pytestFlags = [ "--asyncio-mode=auto" ];
61
62 preCheck = ''
63 # Need sigstore is an optional dependencies and need <2
64 rm -rf tests/test_helper.py
65 '';
66
67 pythonImportsCheck = [ "aiogithubapi" ];
68
69 meta = {
70 description = "Python client for the GitHub API";
71 homepage = "https://github.com/ludeeus/aiogithubapi";
72 changelog = "https://github.com/ludeeus/aiogithubapi/releases/tag/${version}";
73 license = lib.licenses.mit;
74 maintainers = with lib.maintainers; [ fab ];
75 };
76}