1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pdm-backend,
6 pydantic,
7 pytest-vcr,
8 pytestCheckHook,
9 pythonOlder,
10 requests,
11 requests-oauthlib,
12}:
13
14buildPythonPackage rec {
15 pname = "garth";
16 version = "0.4.46";
17 pyproject = true;
18
19 disabled = pythonOlder "3.9";
20
21 src = fetchPypi {
22 inherit pname version;
23 hash = "sha256-WuGeZ2EggyhbEDIbjg4ffIFaj2DyHi8Tvowhoi5k2Os=";
24 };
25
26 build-system = [ pdm-backend ];
27
28 dependencies = [
29 pydantic
30 requests
31 requests-oauthlib
32 ];
33
34 nativeCheckInputs = [
35 pytest-vcr
36 pytestCheckHook
37 ];
38
39 pythonImportsCheck = [ "garth" ];
40
41 disabledTests = [
42 # Tests require network access
43 "test_client_request"
44 "test_connectapi"
45 "test_daily"
46 "test_download"
47 "test_exchange"
48 "test_hrv_data_get"
49 "test_login"
50 "test_refresh_oauth2_token"
51 "test_sleep_data"
52 "test_username"
53 "test_weekly"
54 ];
55
56 meta = with lib; {
57 description = "Garmin SSO auth and connect client";
58 homepage = "https://github.com/matin/garth";
59 changelog = "https://github.com/matin/garth/releases/tag/${version}";
60 license = licenses.mit;
61 maintainers = with maintainers; [ fab ];
62 };
63}