Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / file-managers / browsr / default.nix
blobad35ae555d1a2cddcfc2e8ea9953ea52529625dc
1 { lib
2 , python3
3 , fetchFromGitHub
4 , extras ? [ "all" ]
5 }:
7 python3.pkgs.buildPythonApplication rec {
8   pname = "browsr";
9   version = "1.17.1";
10   format = "pyproject";
12   src = fetchFromGitHub {
13     owner = "juftin";
14     repo = "browsr";
15     rev = "v${version}";
16     hash = "sha256-FExDKugFP94C3zMnR1V4QDPWeM2OtRH2ei0LNs3h06c=";
17   };
19   nativeBuildInputs = with python3.pkgs; [
20     hatchling
21     pythonRelaxDepsHook
22     pytestCheckHook
23   ];
25   propagatedBuildInputs = with python3.pkgs; [
26     art
27     click
28     pandas
29     pillow
30     pymupdf
31     rich
32     rich-click
33     rich-pixels
34     textual
35     textual-universal-directorytree
36   ] ++ lib.attrVals extras passthru.optional-dependencies;
38   passthru.optional-dependencies = with python3.pkgs; {
39     all = [
40       pyarrow
41       textual-universal-directorytree.optional-dependencies.remote
42     ];
43     parquet = [
44       pyarrow
45     ];
46     remote = [
47       textual-universal-directorytree.optional-dependencies.remote
48     ];
49   };
51   pythonRelaxDeps = [
52     "art"
53     "pandas"
54     "pymupdf"
55     "rich-click"
56     "textual"
57   ];
59   pythonImportsCheck = [ "browsr" ];
61   # requires internet access
62   disabledTests = [
63     "test_github_screenshot"
64     "test_github_screenshot_license"
65     "test_textual_app_context_path_github"
66   ];
68   meta = with lib; {
69     description = "A file explorer in your terminal";
70     homepage = "https://juftin.com/browsr";
71     changelog = "https://github.com/juftin/browsr/releases/tag/${src.rev}";
72     license = licenses.mit;
73     maintainers = with maintainers; [ figsoda ];
74   };