1{
2 lib,
3 buildPythonPackage,
4 cryptography,
5 fetchFromGitHub,
6 flaky,
7 pyjwt,
8 pytestCheckHook,
9 pythonOlder,
10 requests,
11 responses,
12 setuptools,
13 typing-extensions,
14}:
15
16buildPythonPackage rec {
17 pname = "globus-sdk";
18 version = "3.55.0";
19 pyproject = true;
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchFromGitHub {
24 owner = "globus";
25 repo = "globus-sdk-python";
26 tag = version;
27 hash = "sha256-3Mf4saBxpyHJC9cz27AaVMn3/IF9XKONMHvpWhCFnSo=";
28 };
29
30 build-system = [ setuptools ];
31
32 preCheck = ''
33 export HOME=$(mktemp -d)
34 '';
35
36 dependencies = [
37 cryptography
38 requests
39 pyjwt
40 ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
41
42 nativeCheckInputs = [ pytestCheckHook ];
43
44 checkInputs = [
45 flaky
46 responses
47 ];
48
49 pythonImportsCheck = [ "globus_sdk" ];
50
51 meta = {
52 description = "Interface to Globus REST APIs, including the Transfer API and the Globus Auth API";
53 homepage = "https://github.com/globus/globus-sdk-python";
54 changelog = "https://github.com/globus/globus-sdk-python/releases/tag/${src.tag}";
55 license = lib.licenses.asl20;
56 maintainers = with lib.maintainers; [ bot-wxt1221 ];
57 };
58}