nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 hatchling,
6 pandas,
7 pyarrow,
8 pytz,
9 textual,
10 tzdata,
11 polars,
12 pytest-asyncio,
13 pytest-textual-snapshot,
14 pytestCheckHook,
15}:
16
17buildPythonPackage rec {
18 pname = "textual-fastdatatable";
19 version = "0.14.0";
20 pyproject = true;
21
22 src = fetchFromGitHub {
23 owner = "tconbeer";
24 repo = "textual-fastdatatable";
25 tag = "v${version}";
26 hash = "sha256-gm1h+r8rZO1/9sXoNwqVuBbv7CpZm2a3YAMHRHGg5uo=";
27 };
28
29 build-system = [ hatchling ];
30
31 dependencies = [
32 pandas
33 pyarrow
34 pytz
35 textual
36 tzdata
37 ]
38 ++ textual.optional-dependencies.syntax;
39
40 optional-dependencies = {
41 polars = [ polars ];
42 };
43
44 nativeCheckInputs = [
45 pytest-asyncio
46 pytest-textual-snapshot
47 pytestCheckHook
48 ]
49 ++ lib.concatAttrValues optional-dependencies;
50
51 pythonRelaxDeps = [
52 "numpy"
53 "pyarrow"
54 ];
55
56 pythonImportsCheck = [ "textual_fastdatatable" ];
57
58 disabledTestPaths = [
59 # Tests are comparing CLI output
60 "tests/snapshot_tests/test_snapshots.py"
61 ];
62
63 meta = {
64 description = "Performance-focused reimplementation of Textual's DataTable widget, with a pluggable data storage backend";
65 homepage = "https://github.com/tconbeer/textual-fastdatatable";
66 changelog = "https://github.com/tconbeer/textual-fastdatatable/releases/tag/${src.tag}";
67 license = lib.licenses.mit;
68 maintainers = with lib.maintainers; [ pcboy ];
69 };
70}