Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 aiohttp,
4 aioresponses,
5 attrs,
6 buildPythonPackage,
7 fetchFromGitHub,
8 jmespath,
9 pytest-asyncio,
10 pytest-cov-stub,
11 pytestCheckHook,
12 uv-build,
13}:
14
15buildPythonPackage (finalAttrs: {
16 pname = "pysma";
17 version = "1.1.0";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "kellerza";
22 repo = "pysma";
23 tag = "v${finalAttrs.version}";
24 hash = "sha256-fRYpWr3eny9Ore2uQhPgVDSb+M1KYy1cy9bE2+Em3xU=";
25 };
26
27 postPatch = ''
28 substituteInPlace pyproject.toml \
29 --replace-fail "uv-build>=0.9,<0.10" uv-build
30 '';
31
32 build-system = [ uv-build ];
33
34 dependencies = [
35 aiohttp
36 attrs
37 jmespath
38 ];
39
40 nativeCheckInputs = [
41 aioresponses
42 pytest-asyncio
43 pytest-cov-stub
44 pytestCheckHook
45 ];
46
47 pythonImportsCheck = [ "pysma" ];
48
49 meta = {
50 description = "Python library for interacting with SMA Solar's WebConnect";
51 homepage = "https://github.com/kellerza/pysma";
52 changelog = "https://github.com/kellerza/pysma/blob/${finalAttrs.src.tag}/CHANGELOG.md";
53 license = lib.licenses.mit;
54 maintainers = with lib.maintainers; [ fab ];
55 };
56})