1{ lib
2, antlr4-python3-runtime
3, asciimatics
4, buildPythonPackage
5, click
6, dacite
7, decorator
8, fetchFromGitHub
9, future
10, first
11, jsonpath-ng
12, loguru
13, overrides
14, pillow
15, ply
16, pyfiglet
17, pyperclip
18, pytestCheckHook
19, pythonOlder
20, antlr4
21, pythonRelaxDepsHook
22, pyyaml
23, setuptools
24, six
25, urwid
26, parameterized
27, wcwidth
28, yamale
29}:
30
31buildPythonPackage rec {
32 pname = "python-fx";
33 version = "0.3.1";
34 format = "setuptools";
35
36 disabled = pythonOlder "3.8";
37
38 src = fetchFromGitHub {
39 owner = "cielong";
40 repo = "pyfx";
41 rev = "refs/tags/v${version}";
42 hash = "sha256-BXKH3AlYMNbMREW5Qx72PrbuZdXlmVS+knWWu/y9PsA=";
43 };
44
45 postPatch = ''
46 rm src/pyfx/model/common/jsonpath/*.{g4,interp,tokens}
47 antlr -Dlanguage=Python3 -visitor -o src/pyfx/model/common/jsonpath/ *.g4
48 '';
49
50 pythonRelaxDeps = true;
51
52 nativeBuildInputs = [
53 antlr4
54 pythonRelaxDepsHook
55 setuptools
56 ];
57
58 propagatedBuildInputs = [
59 antlr4-python3-runtime
60 asciimatics
61 click
62 dacite
63 decorator
64 first
65 future
66 jsonpath-ng
67 loguru
68 overrides
69 pillow
70 ply
71 pyfiglet
72 pyperclip
73 pyyaml
74 six
75 urwid
76 wcwidth
77 yamale
78 ];
79
80 nativeCheckInputs = [
81 pytestCheckHook
82 parameterized
83 ];
84
85 # antlr4 issue prevents us from running the tests
86 # https://github.com/antlr/antlr4/issues/4041
87 doCheck = false;
88
89 # pythonImportsCheck = [
90 # "pyfx"
91 # ];
92
93 meta = with lib; {
94 description = "Module to view JSON in a TUI";
95 homepage = "https://github.com/cielong/pyfx";
96 changelog = "https://github.com/cielong/pyfx/releases/tag/v${version}";
97 license = with licenses; [ mit ];
98 maintainers = with maintainers; [ fab ];
99 };
100}