1{ lib, buildPythonPackage, fetchPypi, fetchpatch
2, chart-studio
3, colorlover
4, ipython
5, ipywidgets
6, nose
7, numpy
8, pandas
9, six
10, statsmodels
11}:
12
13buildPythonPackage rec {
14 pname = "cufflinks";
15 version = "0.16";
16
17 src = fetchPypi {
18 inherit pname version;
19 sha256 = "163lag5g4micpqm3m4qy9b5r06a7pw45nq80x4skxc7dcrly2ygd";
20 };
21
22 propagatedBuildInputs = [
23 chart-studio
24 colorlover
25 ipython
26 ipywidgets
27 numpy
28 pandas
29 six
30 statsmodels
31 ];
32
33 patches = [
34 # Plotly 4 compatibility. Remove with next release, assuming it gets merged.
35 (fetchpatch {
36 url = "https://github.com/santosjorge/cufflinks/pull/202/commits/e291dce14181858cb457404adfdaf2624b6d0594.patch";
37 sha256 = "1l0dahwqn3cxg49v3i3amwi80dmx2bi5zrazmgzpwsfargmk2kd1";
38 })
39 ];
40
41 # in plotly4+, the plotly.plotly module was moved to chart-studio.plotly
42 postPatch = ''
43 substituteInPlace requirements.txt \
44 --replace "plotly>=3.0.0,<4.0.0a0" "chart-studio"
45 '';
46
47 checkInputs = [ nose ];
48
49 checkPhase = ''
50 nosetests -xv tests.py
51 '';
52
53 meta = with lib; {
54 description = "Productivity Tools for Plotly + Pandas";
55 homepage = "https://github.com/santosjorge/cufflinks";
56 license = licenses.mit;
57 maintainers = with maintainers; [ globin ];
58 };
59}