1{
2 lib,
3 buildPythonPackage,
4 fetchpatch,
5 fetchPypi,
6 ipywidgets,
7 notebook,
8 pandas,
9 pytestCheckHook,
10}:
11
12buildPythonPackage rec {
13 pname = "qgrid";
14 version = "1.3.1";
15 format = "setuptools";
16
17 src = fetchPypi {
18 inherit pname version;
19 sha256 = "sha256-/or1tQgzCE3AtqJlzRrHuDfAPA+FIRUBY1YNzneNcRw=";
20 };
21
22 patches = [
23 # Fixes compatibility of qgrid with ipywidgets >= 8.0.0
24 # See https://github.com/quantopian/qgrid/pull/331
25 (fetchpatch {
26 url = "https://github.com/quantopian/qgrid/pull/331/commits/8cc50d5117d4208a9dd672418021c59898e2d1b2.patch";
27 hash = "sha256-+NLz4yBUGUXKyukPVE4PehenPzjnfljR5RAX7CEtpV4=";
28 })
29 ];
30
31 propagatedBuildInputs = [
32 ipywidgets
33 notebook
34 pandas
35 ];
36
37 nativeCheckInputs = [ pytestCheckHook ];
38
39 # Those tests are also failing upstream
40 disabledTests = [
41 "test_edit_date"
42 "test_edit_multi_index_df"
43 "test_multi_index"
44 "test_period_object_column"
45 # probably incompatible with pandas>=2.1
46 "test_add_row_button"
47 ];
48
49 pythonImportsCheck = [ "qgrid" ];
50
51 meta = with lib; {
52 description = "An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks";
53 homepage = "https://github.com/quantopian/qgrid";
54 license = licenses.asl20;
55 maintainers = with maintainers; [ GaetanLepage ];
56 };
57}