1{
2 lib,
3 aiohttp,
4 aresponses,
5 buildPythonPackage,
6 fetchFromGitHub,
7 freezegun,
8 poetry-core,
9 pytest-asyncio,
10 pytestCheckHook,
11 pythonOlder,
12}:
13
14buildPythonPackage rec {
15 pname = "aiorecollect";
16 version = "2023.12.0";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.9";
20
21 src = fetchFromGitHub {
22 owner = "bachya";
23 repo = "aiorecollect";
24 tag = version;
25 hash = "sha256-Rj0+r7eERLY5VzmuDQH/TeVLfmvmKwPqcvd1b/To0Ts=";
26 };
27
28 postPatch = ''
29 # this is not used directly by the project
30 sed -i '/certifi =/d' pyproject.toml
31 '';
32
33 nativeBuildInputs = [ poetry-core ];
34
35 propagatedBuildInputs = [ aiohttp ];
36
37 __darwinAllowLocalNetworking = true;
38
39 nativeCheckInputs = [
40 aresponses
41 freezegun
42 pytest-asyncio
43 pytestCheckHook
44 ];
45
46 disabledTestPaths = [
47 # Ignore the examples directory as the files are prefixed with test_.
48 "examples/"
49 ];
50
51 pythonImportsCheck = [ "aiorecollect" ];
52
53 meta = with lib; {
54 description = "Python library for the Recollect Waste API";
55 longDescription = ''
56 aiorecollect is a Python asyncio-based library for the ReCollect
57 Waste API. It allows users to programmatically retrieve schedules
58 for waste removal in their area, including trash, recycling, compost
59 and more.
60 '';
61 homepage = "https://github.com/bachya/aiorecollect";
62 changelog = "https://github.com/bachya/aiorecollect/releases/tag/${version}";
63 license = with licenses; [ mit ];
64 maintainers = with maintainers; [ fab ];
65 };
66}