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}