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