1{
2 lib,
3 stdenv,
4 platformdirs,
5 bokeh,
6 buildPythonPackage,
7 dask,
8 entrypoints,
9 fetchFromGitHub,
10 fsspec,
11 hvplot,
12 intake-parquet,
13 jinja2,
14 msgpack,
15 msgpack-numpy,
16 pandas,
17 panel,
18 pyarrow,
19 pytestCheckHook,
20 python-snappy,
21 pythonOlder,
22 pythonAtLeast,
23 pyyaml,
24 networkx,
25 requests,
26 setuptools,
27 setuptools-scm,
28 tornado,
29}:
30
31buildPythonPackage rec {
32 pname = "intake";
33 version = "2.0.8";
34 pyproject = true;
35
36 disabled = pythonOlder "3.8";
37
38 src = fetchFromGitHub {
39 owner = "intake";
40 repo = "intake";
41 tag = version;
42 hash = "sha256-Mjf4CKLFrIti9pFP6HTt1D/iYw0WMowLIfMdfM7Db+E=";
43 };
44
45 nativeBuildInputs = [
46 setuptools
47 setuptools-scm
48 ];
49
50 propagatedBuildInputs = [
51 platformdirs
52 dask
53 entrypoints
54 fsspec
55 msgpack
56 jinja2
57 pandas
58 pyyaml
59 networkx
60 ];
61
62 nativeCheckInputs = [
63 intake-parquet
64 pytestCheckHook
65 ]
66 ++ lib.flatten (builtins.attrValues optional-dependencies);
67
68 optional-dependencies = {
69 server = [
70 msgpack
71 python-snappy
72 tornado
73 ];
74 dataframe = [
75 msgpack-numpy
76 pyarrow
77 ];
78 plot = [
79 hvplot
80 bokeh
81 panel
82 ];
83 remote = [ requests ];
84 };
85
86 __darwinAllowLocalNetworking = true;
87
88 preCheck = ''
89 export HOME=$(mktemp -d);
90 export PATH="$PATH:$out/bin";
91 '';
92
93 disabledTestPaths = [
94 # Missing plusins
95 "intake/catalog/tests/test_alias.py"
96 "intake/catalog/tests/test_gui.py"
97 "intake/catalog/tests/test_local.py"
98 "intake/catalog/tests/test_reload_integration.py"
99 "intake/source/tests/test_csv.py"
100 "intake/source/tests/test_derived.py"
101 "intake/source/tests/test_npy.py"
102 "intake/source/tests/test_text.py"
103 "intake/tests/test_config.py"
104 "intake/tests/test_top_level.py"
105 ];
106
107 disabledTests = [
108 # Disable tests which touch network
109 "http"
110 "test_address_flag"
111 "test_dir"
112 "test_discover"
113 "test_filtered_compressed_cache"
114 "test_flatten_flag"
115 "test_get_dir"
116 "test_pagination"
117 "test_port_flag"
118 "test_read_part_compressed"
119 "test_read_partition"
120 "test_read_pattern"
121 "test_remote_arr"
122 "test_remote_cat"
123 "test_remote_env"
124 # ValueError
125 "test_datasource_python_to_dask"
126 "test_catalog_passthrough"
127 # Timing-based, flaky on darwin and possibly others
128 "test_idle_timer"
129 ]
130 ++ lib.optionals (pythonAtLeast "3.12") [
131 # Require deprecated distutils
132 "test_which"
133 "test_load"
134 ];
135
136 pythonImportsCheck = [ "intake" ];
137
138 meta = with lib; {
139 description = "Data load and catalog system";
140 homepage = "https://github.com/ContinuumIO/intake";
141 changelog = "https://github.com/intake/intake/blob/${version}/docs/source/changelog.rst";
142 license = licenses.bsd2;
143 maintainers = [ ];
144 };
145}