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