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 unittestCheckHook,
15 urllib3,
16}:
17
18buildPythonPackage rec {
19 pname = "sapi-python-client";
20 version = "0.9.1";
21 pyproject = true;
22
23 disabled = pythonOlder "3.7";
24
25 src = fetchFromGitHub {
26 owner = "keboola";
27 repo = "sapi-python-client";
28 rev = "refs/tags/${version}";
29 hash = "sha256-4ykOwSQ1tM0ZviETkjU0ydg7FWjkGNysHQe+f9MS0MM=";
30 };
31
32 postPatch = ''
33 substituteInPlace pyproject.toml \
34 --replace-fail "urllib3<2.0.0" "urllib3"
35 '';
36
37 nativeBuildInputs = [
38 setuptools
39 setuptools-git-versioning
40 setuptools-scm
41 ];
42
43 propagatedBuildInputs = [
44 azure-storage-blob
45 boto3
46 python-dotenv
47 requests
48 responses
49 urllib3
50 ];
51
52 # Requires API token and an active Keboola bucket
53 # ValueError: Root URL is required.
54 doCheck = false;
55
56 pythonImportsCheck = [
57 "kbcstorage"
58 "kbcstorage.buckets"
59 "kbcstorage.client"
60 "kbcstorage.tables"
61 ];
62
63 meta = with lib; {
64 description = "Keboola Connection Storage API client";
65 homepage = "https://github.com/keboola/sapi-python-client";
66 changelog = "https://github.com/keboola/sapi-python-client/releases/tag/${version}";
67 license = licenses.mit;
68 maintainers = with maintainers; [ mrmebelman ];
69 };
70}