1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 crashtest,
6 poetry-core,
7 pytest-mock,
8 pytestCheckHook,
9 pythonRelaxDepsHook,
10 rapidfuzz,
11}:
12
13buildPythonPackage rec {
14 pname = "cleo";
15 version = "2.1.0";
16 format = "pyproject";
17
18 src = fetchFromGitHub {
19 owner = "python-poetry";
20 repo = pname;
21 rev = "refs/tags/${version}";
22 hash = "sha256-reo/7aPFU5uvZ1YPRTJDRmcMSMFru8e5ss5YmjSe3QU=";
23 };
24
25 nativeBuildInputs = [
26 poetry-core
27 pythonRelaxDepsHook
28 ];
29
30 pythonRelaxDeps = [ "rapidfuzz" ];
31
32 propagatedBuildInputs = [
33 crashtest
34 rapidfuzz
35 ];
36
37 pythonImportsCheck = [
38 "cleo"
39 "cleo.application"
40 "cleo.commands.command"
41 "cleo.helpers"
42 ];
43
44 nativeCheckInputs = [
45 pytest-mock
46 pytestCheckHook
47 ];
48
49 meta = with lib; {
50 homepage = "https://github.com/python-poetry/cleo";
51 changelog = "https://github.com/python-poetry/cleo/blob/${src.rev}/CHANGELOG.md";
52 description = "Allows you to create beautiful and testable command-line interfaces";
53 license = licenses.mit;
54 maintainers = with maintainers; [ jakewaksbaum ];
55 };
56}