Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 adlfs, 4 appdirs, 5 buildPythonPackage, 6 fastparquet, 7 fetchFromGitHub, 8 fsspec, 9 gcsfs, 10 humanize, 11 importlib-metadata, 12 importlib-resources, 13 jinja2, 14 joblib, 15 pandas, 16 pyarrow, 17 pytest-cases, 18 pytest-parallel, 19 pytestCheckHook, 20 pythonOlder, 21 pyyaml, 22 requests, 23 s3fs, 24 setuptools, 25 setuptools-scm, 26 xxhash, 27}: 28 29buildPythonPackage rec { 30 pname = "pins"; 31 version = "0.8.6"; 32 pyproject = true; 33 34 disabled = pythonOlder "3.8"; 35 36 src = fetchFromGitHub { 37 owner = "rstudio"; 38 repo = "pins-python"; 39 rev = "refs/tags/v${version}"; 40 hash = "sha256-TRwdd0vxqXZgongjooJG5rzTnopUsjfl2I8z3nBocdg="; 41 }; 42 43 build-system = [ 44 setuptools 45 setuptools-scm 46 ]; 47 48 dependencies = [ 49 appdirs 50 fsspec 51 humanize 52 importlib-metadata 53 importlib-resources 54 jinja2 55 joblib 56 pandas 57 pyyaml 58 requests 59 xxhash 60 ]; 61 62 passthru.optional-dependencies = { 63 aws = [ s3fs ]; 64 azure = [ adlfs ]; 65 gcs = [ gcsfs ]; 66 }; 67 68 nativeCheckInputs = [ 69 fastparquet 70 pyarrow 71 pytest-cases 72 pytest-parallel 73 pytestCheckHook 74 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); 75 76 pythonImportsCheck = [ "pins" ]; 77 78 pytestFlagsArray = [ "pins/tests/" ]; 79 80 disabledTestPaths = [ 81 # Tests require network access 82 "pins/tests/test_boards.py" 83 "pins/tests/test_compat.py" 84 "pins/tests/test_constructors.py" 85 "pins/tests/test_rsconnect_api.py" 86 ]; 87 88 meta = with lib; { 89 description = "Module to publishes data, models and other Python objects"; 90 homepage = "https://github.com/rstudio/pins-python"; 91 changelog = "https://github.com/rstudio/pins-python/releases/tag/v${version}"; 92 license = licenses.mit; 93 maintainers = with maintainers; [ fab ]; 94 }; 95}