1{ lib
2, buildPythonPackage
3, fetchPypi
4, autopage
5, cmd2
6, importlib-metadata
7, installShellFiles
8, openstackdocstheme
9, pbr
10, prettytable
11, pyparsing
12, pyyaml
13, stevedore
14, sphinx
15, callPackage
16}:
17
18buildPythonPackage rec {
19 pname = "cliff";
20 version = "4.3.0";
21
22 src = fetchPypi {
23 inherit pname version;
24 hash = "sha256-/FtuvI+4FTMncLJIXuNsCXU5N8N8zk8yJ83U4Qsz6sw=";
25 };
26
27 postPatch = ''
28 # only a small portion of the listed packages are actually needed for running the tests
29 # so instead of removing them one by one remove everything
30 rm test-requirements.txt
31 '';
32
33 nativeBuildInputs = [
34 installShellFiles
35 openstackdocstheme
36 sphinx
37 ];
38
39 propagatedBuildInputs = [
40 autopage
41 cmd2
42 importlib-metadata
43 pbr
44 prettytable
45 pyparsing
46 pyyaml
47 stevedore
48 ];
49
50 postInstall = ''
51 sphinx-build -a -E -d doc/build/doctrees -b man doc/source doc/build/man
52 installManPage doc/build/man/cliff.1
53 '';
54
55 # check in passthru.tests.pytest to escape infinite recursion with stestr
56 doCheck = false;
57
58 pythonImportsCheck = [ "cliff" ];
59
60 passthru.tests = {
61 pytest = callPackage ./tests.nix { };
62 };
63
64 meta = with lib; {
65 description = "Command Line Interface Formulation Framework";
66 homepage = "https://github.com/openstack/cliff";
67 license = licenses.asl20;
68 maintainers = teams.openstack.members;
69 };
70}