1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchFromGitHub,
6 flit-core,
7 importlib-metadata,
8 typing-extensions,
9 cloudpathlib,
10 azure-storage-blob,
11 google-cloud-storage,
12 boto3,
13 psutil,
14 pydantic,
15 pytest7CheckHook,
16 pytest-cases,
17 pytest-cov,
18 pytest-xdist,
19 python-dotenv,
20 shortuuid,
21}:
22
23buildPythonPackage rec {
24 pname = "cloudpathlib";
25 version = "0.18.1";
26 pyproject = true;
27
28 disabled = pythonOlder "3.7";
29
30 src = fetchFromGitHub {
31 owner = "drivendataorg";
32 repo = "cloudpathlib";
33 rev = "refs/tags/v${version}";
34 hash = "sha256-RrdRUqQ3QyMUpTi1FEsSXK6WS37r77SdPBH1oVVvSw0=";
35 };
36
37 nativeBuildInputs = [ flit-core ];
38
39 propagatedBuildInputs = [
40 importlib-metadata
41 typing-extensions
42 ];
43
44 passthru.optional-dependencies = {
45 all = [ cloudpathlib ];
46 azure = [ azure-storage-blob ];
47 gs = [ google-cloud-storage ];
48 s3 = [ boto3 ];
49 };
50
51 pythonImportsCheck = [ "cloudpathlib" ];
52
53 nativeCheckInputs = [
54 azure-storage-blob
55 boto3
56 google-cloud-storage
57 psutil
58 pydantic
59 pytest7CheckHook
60 pytest-cases
61 pytest-cov
62 pytest-xdist
63 python-dotenv
64 shortuuid
65 ];
66
67 meta = with lib; {
68 description = "Python pathlib-style classes for cloud storage services such as Amazon S3, Azure Blob Storage, and Google Cloud Storage";
69 homepage = "https://github.com/drivendataorg/cloudpathlib";
70 license = licenses.mit;
71 maintainers = with maintainers; [ GaetanLepage ];
72 };
73}