1{ lib
2, ansiwrap
3, azure-datalake-store
4, azure-storage-blob
5, boto3
6, buildPythonPackage
7, click
8, entrypoints
9, fetchPypi
10, gcsfs
11, nbclient
12, nbformat
13, pyarrow
14, PyGithub
15, pytest-mock
16, pytestCheckHook
17, pythonOlder
18, pyyaml
19, requests
20, tenacity
21, tqdm
22}:
23
24buildPythonPackage rec {
25 pname = "papermill";
26 version = "2.4.0";
27 format = "setuptools";
28
29 disabled = pythonOlder "3.7";
30
31 src = fetchPypi {
32 inherit pname version;
33 hash = "sha256-b4+KmwazlnfyB8CRAMjThrz1kvDLvdqfD1DoFEVpdic=";
34 };
35
36 propagatedBuildInputs = [
37 ansiwrap
38 click
39 pyyaml
40 nbformat
41 nbclient
42 tqdm
43 requests
44 entrypoints
45 tenacity
46 ];
47
48 passthru.optional-dependencies = {
49 azure = [
50 azure-datalake-store
51 azure-storage-blob
52 ];
53 gcs = [
54 gcsfs
55 ];
56 github = [
57 PyGithub
58 ];
59 hdfs = [
60 pyarrow
61 ];
62 s3 = [
63 boto3
64 ];
65 };
66
67 checkInputs = [
68 pytestCheckHook
69 pytest-mock
70 ];
71
72 preCheck = ''
73 export HOME=$(mktemp -d)
74 '';
75
76 # The test suite depends on cloud resources azure/aws
77 doCheck = false;
78
79 pythonImportsCheck = [
80 "papermill"
81 ];
82
83 meta = with lib; {
84 description = "Parametrize and run Jupyter and interact with notebooks";
85 homepage = "https://github.com/nteract/papermill";
86 license = licenses.bsd3;
87 maintainers = with maintainers; [ costrouc ];
88 };
89}