1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 six,
7 hypothesis,
8 mock,
9 levenshtein,
10 pytestCheckHook,
11 termcolor,
12 pythonOlder,
13}:
14
15buildPythonPackage rec {
16 pname = "fire";
17 version = "0.7.1";
18 pyproject = true;
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchFromGitHub {
23 owner = "google";
24 repo = "python-fire";
25 tag = "v${version}";
26 hash = "sha256-TZLL7pzX8xPtB/9k3l5395eHrNojmqTH7PfB1kf99Io=";
27 };
28
29 build-system = [ setuptools ];
30
31 dependencies = [
32 six
33 termcolor
34 ];
35
36 nativeCheckInputs = [
37 hypothesis
38 mock
39 levenshtein
40 pytestCheckHook
41 ];
42
43 pythonImportsCheck = [ "fire" ];
44
45 meta = with lib; {
46 description = "Library for automatically generating command line interfaces";
47 longDescription = ''
48 Python Fire is a library for automatically generating command line
49 interfaces (CLIs) from absolutely any Python object.
50
51 * Python Fire is a simple way to create a CLI in Python.
52
53 * Python Fire is a helpful tool for developing and debugging
54 Python code.
55
56 * Python Fire helps with exploring existing code or turning other
57 people's code into a CLI.
58
59 * Python Fire makes transitioning between Bash and Python easier.
60
61 * Python Fire makes using a Python REPL easier by setting up the
62 REPL with the modules and variables you'll need already imported
63 and created.
64 '';
65 homepage = "https://github.com/google/python-fire";
66 changelog = "https://github.com/google/python-fire/releases/tag/v${version}";
67 license = licenses.asl20;
68 maintainers = with maintainers; [ leenaars ];
69 };
70}