1{
2 lib,
3 azure-storage-blob,
4 boto3,
5 buildPythonPackage,
6 fetchFromGitHub,
7 python-dotenv,
8 pythonOlder,
9 requests,
10 responses,
11 setuptools,
12 setuptools-git-versioning,
13 setuptools-scm,
14 urllib3,
15 google-auth,
16 google-cloud-storage,
17}:
18
19buildPythonPackage rec {
20 pname = "sapi-python-client";
21 version = "0.9.3";
22 pyproject = true;
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "keboola";
28 repo = "sapi-python-client";
29 tag = version;
30 hash = "sha256-VNIi7YYtgPSpulY7W+fNrlVxDMgbo4Urxp8adLqESn8=";
31 };
32
33 postPatch = ''
34 substituteInPlace pyproject.toml \
35 --replace-fail "urllib3<2.0.0" "urllib3"
36 '';
37
38 build-system = [
39 setuptools
40 setuptools-git-versioning
41 setuptools-scm
42 ];
43
44 pythonRelaxDeps = [
45 "google-cloud-storage"
46 "google-auth"
47 ];
48
49 dependencies = [
50 azure-storage-blob
51 boto3
52 python-dotenv
53 requests
54 responses
55 urllib3
56 google-auth
57 google-cloud-storage
58 ];
59
60 # Requires API token and an active Keboola bucket
61 # ValueError: Root URL is required.
62 doCheck = false;
63
64 pythonImportsCheck = [
65 "kbcstorage"
66 "kbcstorage.buckets"
67 "kbcstorage.client"
68 "kbcstorage.tables"
69 ];
70
71 meta = {
72 description = "Keboola Connection Storage API client";
73 homepage = "https://github.com/keboola/sapi-python-client";
74 changelog = "https://github.com/keboola/sapi-python-client/releases/tag/${version}";
75 license = lib.licenses.mit;
76 maintainers = with lib.maintainers; [ mrmebelman ];
77 };
78}