1{
2 aiohttp,
3 bleak,
4 bleak-retry-connector,
5 buildPythonPackage,
6 fetchFromGitHub,
7 hatch-regex-commit,
8 hatchling,
9 lib,
10 pytest-asyncio,
11 pytest-cov-stub,
12 pytestCheckHook,
13}:
14
15buildPythonPackage rec {
16 pname = "pynecil";
17 version = "4.2.0";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "tr4nt0r";
22 repo = "pynecil";
23 tag = "v${version}";
24 hash = "sha256-ZEg5fmSE594YEgcJROOeVqc1reyGlyQiYNoCcfUanrY=";
25 };
26
27 pythonRelaxDeps = [ "aiohttp" ];
28
29 build-system = [
30 hatch-regex-commit
31 hatchling
32 ];
33
34 dependencies = [
35 aiohttp
36 bleak
37 bleak-retry-connector
38 ];
39
40 pythonImportsCheck = [ "pynecil" ];
41
42 nativeCheckInputs = [
43 pytest-asyncio
44 pytest-cov-stub
45 pytestCheckHook
46 ];
47
48 disabledTests = [
49 # requires access to system D-Bus
50 "test_get_settings_communication_error"
51 ];
52
53 meta = {
54 changelog = "https://github.com/tr4nt0r/pynecil/releases/tag/${src.tag}";
55 description = "Python library to communicate with Pinecil V2 soldering irons via Bluetooth";
56 homepage = "https://github.com/tr4nt0r/pynecil";
57 license = lib.licenses.mit;
58 maintainers = with lib.maintainers; [ dotlambda ];
59 };
60}