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