1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 pythonOlder,
6 aiodns,
7 aiohttp,
8 aresponses,
9 poetry-core,
10 pytest-asyncio,
11 pytest-cov-stub,
12 pytest-freezer,
13 pytestCheckHook,
14 syrupy,
15 yarl,
16}:
17
18buildPythonPackage rec {
19 pname = "forecast-solar";
20 version = "4.2.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.11";
24
25 src = fetchFromGitHub {
26 owner = "home-assistant-libs";
27 repo = "forecast_solar";
28 tag = "v${version}";
29 hash = "sha256-ZBkuhONvn1/QpD+ml3HJinMIdg1HFpVj5KZAlUt/qR4=";
30 };
31
32 build-system = [ poetry-core ];
33
34 env.PACKAGE_VERSION = version;
35
36 dependencies = [
37 aiodns
38 aiohttp
39 yarl
40 ];
41
42 pythonImportsCheck = [ "forecast_solar" ];
43
44 nativeCheckInputs = [
45 aresponses
46 pytest-asyncio
47 pytest-cov-stub
48 pytest-freezer
49 pytestCheckHook
50 syrupy
51 ];
52
53 disabledTests = [
54 # "Error while resolving Forecast.Solar API address"
55 "test_api_key_validation"
56 "test_estimated_forecast"
57 "test_internal_session"
58 "test_json_request"
59 "test_plane_validation"
60 "test_status_400"
61 "test_status_401"
62 "test_status_422"
63 "test_status_429"
64 ];
65
66 meta = with lib; {
67 changelog = "https://github.com/home-assistant-libs/forecast_solar/releases/tag/v${version}";
68 description = "Asynchronous Python client for getting forecast solar information";
69 homepage = "https://github.com/home-assistant-libs/forecast_solar";
70 license = licenses.mit;
71 maintainers = with maintainers; [ dotlambda ];
72 };
73}