1{ lib, buildPythonPackage, fetchPypi, fetchpatch, isPy27, pythonAtLeast
2, graphviz
3, multipledispatch
4, numpy
5, pandas
6, pyarrow
7, pytest
8, pytz
9, regex
10, requests
11, sqlalchemy
12, tables
13, toolz
14}:
15
16buildPythonPackage rec {
17 pname = "ibis-framework";
18 version = "1.3.0";
19 disabled = isPy27 || pythonAtLeast "3.8";
20
21 src = fetchPypi {
22 inherit pname version;
23 sha256 = "1my94a11jzg1hv6ln8wxklbqrg6z5l2l77vr89aq0829yyxacmv7";
24 };
25
26 patches = [
27 # fix tests for pandas 1.1
28 (fetchpatch {
29 url = "https://github.com/ibis-project/ibis/commit/53ef3cefc4ae90d61f3612310cb36da2bcd11305.diff";
30 sha256 = "1i5yjmqridjqpggiinsjaz5spcxca5bd48vy7a0mj4mm1b5flw2m";
31 })
32 ];
33
34 propagatedBuildInputs = [
35 multipledispatch
36 numpy
37 pandas
38 pytz
39 regex
40 toolz
41 sqlalchemy
42 requests
43 graphviz
44 tables
45 pyarrow
46 ];
47
48 checkInputs = [
49 pytest
50 ];
51
52 # ignore tests which require test dataset, or frameworks not available
53 checkPhase = ''
54 pytest ibis \
55 --ignore=ibis/tests/all \
56 --ignore=ibis/{sql,spark}
57 '';
58
59 meta = with lib; {
60 description = "Productivity-centric Python Big Data Framework";
61 homepage = "https://github.com/ibis-project/ibis";
62 license = licenses.asl20;
63 maintainers = [ maintainers.costrouc ];
64 };
65}