{ lib , stdenv , aiohttp , ansicolors , azure-datalake-store , azure-identity , azure-storage-blob , boto3 , buildPythonPackage , click , entrypoints , fetchFromGitHub , gcsfs , ipykernel , moto , nbclient , nbformat , pyarrow , pygithub , pytest-mock , pytestCheckHook , pythonAtLeast , pythonOlder , pyyaml , requests , setuptools , tenacity , tqdm }: buildPythonPackage rec { pname = "papermill"; version = "2.6.0"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "nteract"; repo = "papermill"; rev = "refs/tags/${version}"; hash = "sha256-NxC5+hRDdMCl/7ZIho5ml4hdENrgO+wzi87GRPeMv8Q="; }; build-system = [ setuptools ]; dependencies = [ click pyyaml nbformat nbclient tqdm requests entrypoints tenacity ansicolors ] ++ lib.optionals (pythonAtLeast "3.12") [ aiohttp ]; passthru.optional-dependencies = { azure = [ azure-datalake-store azure-identity azure-storage-blob ]; gcs = [ gcsfs ]; github = [ pygithub ]; hdfs = [ pyarrow ]; s3 = [ boto3 ]; }; nativeCheckInputs = [ ipykernel moto pytest-mock pytestCheckHook ] ++ passthru.optional-dependencies.azure ++ passthru.optional-dependencies.s3 ++ passthru.optional-dependencies.gcs; preCheck = '' export HOME=$(mktemp -d) ''; pythonImportsCheck = [ "papermill" ]; disabledTests = [ # pytest 8 compat "test_read_with_valid_file_extension" ] ++ lib.optionals stdenv.isDarwin [ # might fail due to the sandbox "test_end2end_autosave_slow_notebook" ]; disabledTestPaths = [ # ImportError: cannot import name 'mock_s3' from 'moto' "papermill/tests/test_s3.py" ]; __darwinAllowLocalNetworking = true; meta = with lib; { description = "Parametrize and run Jupyter and interact with notebooks"; homepage = "https://github.com/nteract/papermill"; license = licenses.bsd3; maintainers = with maintainers; [ ]; mainProgram = "papermill"; }; }