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