1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 click,
7 pycountry-convert,
8 pycryptodome,
9 requests,
10 sleekxmppfs,
11 requests-mock,
12 pytestCheckHook,
13}:
14
15buildPythonPackage rec {
16 pname = "py-sucks";
17 version = "0.9.11";
18 pyproject = true;
19
20 src = fetchFromGitHub {
21 owner = "mib1185";
22 repo = "py-sucks";
23 tag = "v${version}";
24 hash = "sha256-srj/3x04R9KgbdC6IgbQdgUz+srAx0OttB6Ndb2+Nh4=";
25 };
26
27 build-system = [ setuptools ];
28
29 dependencies = [
30 pycryptodome
31 requests
32 sleekxmppfs
33 ];
34
35 optional-dependencies = {
36 cli = [
37 click
38 pycountry-convert
39 ];
40 };
41
42 pythonImportsCheck = [ "sucks" ];
43
44 nativeCheckInputs = [
45 requests-mock
46 pytestCheckHook
47 ]
48 ++ lib.flatten (lib.attrValues optional-dependencies);
49
50 disabledTests = [
51 # assumes $HOME is at a specific place
52 "test_config_file_name"
53 ];
54
55 meta = {
56 changelog = "https://github.com/mib1185/py-sucks/releases/tag/${src.tag}";
57 description = "Library for controlling certain robot vacuums";
58 homepage = "https://github.com/mib1185/py-sucks";
59 license = lib.licenses.gpl3Only;
60 mainProgram = "sucks";
61 maintainers = with lib.maintainers; [ dotlambda ];
62 };
63}