Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 aiohttp,
4 aresponses,
5 backoff,
6 buildPythonPackage,
7 fetchFromGitHub,
8 hatchling,
9 mashumaro,
10 orjson,
11 packaging,
12 pytest-asyncio,
13 pytest-cov-stub,
14 pytest-mock,
15 pytest-xdist,
16 pytestCheckHook,
17 yarl,
18 zeroconf,
19}:
20
21buildPythonPackage (finalAttrs: {
22 pname = "python-bsblan";
23 version = "4.1.0";
24 pyproject = true;
25
26 src = fetchFromGitHub {
27 owner = "liudger";
28 repo = "python-bsblan";
29 tag = "v${finalAttrs.version}";
30 hash = "sha256-t60WMq1kbCIkcQSfr03K9Z6ro3zFGaDxCnl/84by+Qw=";
31 };
32
33 postPatch = ''
34 substituteInPlace pyproject.toml \
35 --replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
36 '';
37
38 build-system = [ hatchling ];
39
40 pythonRelaxDeps = [ "async-timeout" ];
41
42 dependencies = [
43 aiohttp
44 backoff
45 mashumaro
46 orjson
47 packaging
48 yarl
49 ];
50
51 nativeCheckInputs = [
52 aresponses
53 pytest-asyncio
54 pytest-cov-stub
55 pytest-mock
56 pytest-xdist
57 pytestCheckHook
58 zeroconf
59 ];
60
61 __darwinAllowLocalNetworking = true;
62
63 pythonImportsCheck = [ "bsblan" ];
64
65 meta = {
66 description = "Module to control and monitor an BSBLan device programmatically";
67 homepage = "https://github.com/liudger/python-bsblan";
68 changelog = "https://github.com/liudger/python-bsblan/releases/tag/${finalAttrs.src.tag}";
69 license = lib.licenses.mit;
70 maintainers = with lib.maintainers; [ fab ];
71 };
72})