1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 autopage,
6 cmd2,
7 importlib-metadata,
8 openstackdocstheme,
9 pbr,
10 prettytable,
11 pyparsing,
12 pyyaml,
13 setuptools,
14 stevedore,
15 sphinxHook,
16 callPackage,
17}:
18
19buildPythonPackage rec {
20 pname = "cliff";
21 version = "4.7.0";
22 pyproject = true;
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 build-system = [
36 openstackdocstheme
37 setuptools
38 sphinxHook
39 ];
40
41 sphinxBuilders = [ "man" ];
42
43 dependencies = [
44 autopage
45 cmd2
46 importlib-metadata
47 pbr
48 prettytable
49 pyparsing
50 pyyaml
51 stevedore
52 ];
53
54 # check in passthru.tests.pytest to escape infinite recursion with stestr
55 doCheck = false;
56
57 pythonImportsCheck = [ "cliff" ];
58
59 passthru.tests = {
60 pytest = callPackage ./tests.nix { };
61 };
62
63 meta = with lib; {
64 description = "Command Line Interface Formulation Framework";
65 homepage = "https://github.com/openstack/cliff";
66 license = licenses.asl20;
67 maintainers = teams.openstack.members;
68 };
69}