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