1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, pythonOlder
5, markdown-it-py
6, poetry-core
7, pygments
8, typing-extensions
9, pytestCheckHook
10, setuptools
11
12# for passthru.tests
13, enrich
14, httpie
15, rich-rst
16, textual
17}:
18
19buildPythonPackage rec {
20 pname = "rich";
21 version = "13.3.5";
22 format = "pyproject";
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "Textualize";
28 repo = pname;
29 rev = "refs/tags/v${version}";
30 hash = "sha256-PnyO5u0gxfYKT6xr0k3H0lbLl9wKPl6oxR1mM9A0Hys=";
31 };
32
33 nativeBuildInputs = [
34 poetry-core
35 ];
36
37 propagatedBuildInputs = [
38 markdown-it-py
39 pygments
40 setuptools
41 ] ++ lib.optionals (pythonOlder "3.9") [
42 typing-extensions
43 ];
44
45 nativeCheckInputs = [
46 pytestCheckHook
47 ];
48
49 pythonImportsCheck = [
50 "rich"
51 ];
52
53 passthru.tests = {
54 inherit enrich httpie rich-rst textual;
55 };
56
57 meta = with lib; {
58 description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal";
59 homepage = "https://github.com/Textualize/rich";
60 changelog = "https://github.com/Textualize/rich/blob/v${version}/CHANGELOG.md";
61 license = licenses.mit;
62 maintainers = with maintainers; [ ris joelkoen ];
63 };
64}