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