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.63.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-ucVDjOV1NmHguwXSWbomNz9gjrxpeGmoZqF/Je6BL/4=";
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 ]
41 ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
42
43 nativeCheckInputs = [ pytestCheckHook ];
44
45 checkInputs = [
46 flaky
47 responses
48 ];
49
50 pythonImportsCheck = [ "globus_sdk" ];
51
52 meta = {
53 description = "Interface to Globus REST APIs, including the Transfer API and the Globus Auth API";
54 homepage = "https://github.com/globus/globus-sdk-python";
55 changelog = "https://github.com/globus/globus-sdk-python/releases/tag/${src.tag}";
56 license = lib.licenses.asl20;
57 maintainers = with lib.maintainers; [ bot-wxt1221 ];
58 };
59}