1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, pbr
6, httpx
7, pillow
8, pycryptodome
9, pyjwt
10, pytest-asyncio
11, pytestCheckHook
12, python
13, respx
14, time-machine
15, tzdata
16}:
17
18buildPythonPackage rec {
19 pname = "bimmer-connected";
20 version = "0.14.3";
21 format = "setuptools";
22
23 disabled = pythonOlder "3.6";
24
25 src = fetchFromGitHub {
26 owner = "bimmerconnected";
27 repo = "bimmer_connected";
28 rev = "refs/tags/${version}";
29 hash = "sha256-I/MKjdEu69uis5f/Xuk4H6ynC71IQmfASLr07PdEBXE=";
30 };
31
32 nativeBuildInputs = [
33 pbr
34 ];
35
36 PBR_VERSION = version;
37
38 propagatedBuildInputs = [
39 httpx
40 pillow
41 pycryptodome
42 pyjwt
43 ];
44
45 postInstall = ''
46 cp -R bimmer_connected/tests/responses $out/${python.sitePackages}/bimmer_connected/tests/
47 '';
48
49 nativeCheckInputs = [
50 pytest-asyncio
51 pytestCheckHook
52 respx
53 time-machine
54 ];
55
56 preCheck = ''
57 export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo
58 '';
59
60 pythonImportsCheck = [
61 "bimmer_connected"
62 ];
63
64 meta = with lib; {
65 changelog = "https://github.com/bimmerconnected/bimmer_connected/releases/tag/${version}";
66 description = "Library to read data from the BMW Connected Drive portal";
67 homepage = "https://github.com/bimmerconnected/bimmer_connected";
68 license = licenses.asl20;
69 maintainers = with maintainers; [ dotlambda ];
70 };
71}