1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, aiofiles
5, aiohttp
6, pytestCheckHook
7, python-dateutil
8, python-slugify
9, pythonOlder
10, requests
11, setuptools
12, sortedcontainers
13}:
14
15buildPythonPackage rec {
16 pname = "blinkpy";
17 version = "0.22.3";
18 pyproject = true;
19
20 disabled = pythonOlder "3.8";
21
22 src = fetchFromGitHub {
23 owner = "fronzbot";
24 repo = "blinkpy";
25 rev = "refs/tags/v${version}";
26 hash = "sha256-J9eBZv/uizkZz53IX1ZfF7IeMOnBonyMD2c5DphW8BQ=";
27 };
28
29 postPatch = ''
30 substituteInPlace pyproject.toml \
31 --replace ', "wheel~=0.40.0"' ""
32 '';
33
34 nativeBuildInputs = [
35 setuptools
36 ];
37
38 propagatedBuildInputs = [
39 aiofiles
40 aiohttp
41 python-dateutil
42 python-slugify
43 requests
44 sortedcontainers
45 ];
46
47 nativeCheckInputs = [
48 pytestCheckHook
49 ];
50
51 pythonImportsCheck = [
52 "blinkpy"
53 "blinkpy.api"
54 "blinkpy.auth"
55 "blinkpy.blinkpy"
56 "blinkpy.camera"
57 "blinkpy.helpers.util"
58 "blinkpy.sync_module"
59 ];
60
61 meta = with lib; {
62 description = "Python library for the Blink Camera system";
63 homepage = "https://github.com/fronzbot/blinkpy";
64 changelog = "https://github.com/fronzbot/blinkpy/blob/${src.rev}/CHANGES.rst";
65 license = licenses.mit;
66 maintainers = with maintainers; [ dotlambda ];
67 };
68}