{ lib , buildPythonPackage , fetchFromGitHub , pythonOlder # build-system , poetry-core # dependencies , markdown-it-py , pygments , typing-extensions # optional-dependencies , ipywidgets # tests , attrs , pytestCheckHook , setuptools # for passthru.tests , enrich , httpie , rich-rst , textual }: buildPythonPackage rec { pname = "rich"; version = "13.7.1"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "Textualize"; repo = pname; rev = "refs/tags/v${version}"; hash = "sha256-7LvmPrCpHfPEfJ1r8IFnQhYkBstvtIrWYhGwcchlc0s="; }; nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ markdown-it-py pygments ] ++ lib.optionals (pythonOlder "3.9") [ typing-extensions ]; passthru.optional-dependencies = { jupyter = [ ipywidgets ]; }; nativeCheckInputs = [ attrs pytestCheckHook setuptools ]; disabledTests = [ # pygments 2.16 compat # https://github.com/Textualize/rich/issues/3088 "test_card_render" "test_markdown_render" "test_markdown_render" "test_python_render" "test_python_render_simple" "test_python_render_simple_passing_lexer_instance" "test_python_render_indent_guides" "test_option_no_wrap" "test_syntax_highlight_ranges" ]; pythonImportsCheck = [ "rich" ]; passthru.tests = { inherit enrich httpie rich-rst textual; }; meta = with lib; { description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"; homepage = "https://github.com/Textualize/rich"; changelog = "https://github.com/Textualize/rich/blob/v${version}/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ ris joelkoen ]; }; }