python312Packages.tensordict: disable flaky test_map_iter_interrupt_early on all...
[NixPkgs.git] / pkgs / by-name / py / pyrosimple / package.nix
blobcea1cf216a2e0188cce3f4aa5c8dd60afaf8f45b
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , nix-update-script
5 , pyrosimple
6 , python3
7 , testers
8 , withInotify ? stdenv.hostPlatform.isLinux
9 }:
11 python3.pkgs.buildPythonApplication rec {
12   pname = "pyrosimple";
13   version = "2.14.1";
14   format = "pyproject";
16   src = fetchFromGitHub {
17     owner = "kannibalox";
18     repo = pname;
19     rev = "refs/tags/v${version}";
20     hash = "sha256-vYwdlFHfh59P62aYbaQSJJfkFC0WtX2UYmww3k30j08=";
21   };
23   pythonRelaxDeps = [
24     "prometheus-client"
25     "python-daemon"
26   ];
28   nativeBuildInputs = with python3.pkgs; [
29     poetry-core
30   ];
32   propagatedBuildInputs = with python3.pkgs; [
33     bencode-py
34     apscheduler
35     jinja2
36     python-daemon
37     importlib-resources
38     parsimonious
39     prometheus-client
40     prompt-toolkit
41     requests
42     shtab
43     python-box
44     tomli-w
45   ] ++ lib.optionals (pythonOlder "3.11") [
46     tomli
47   ] ++ lib.optional withInotify inotify;
49   nativeCheckInputs = with python3.pkgs; [
50     pytestCheckHook
51   ];
53   passthru = {
54     updateScript = nix-update-script { };
55     tests = testers.testVersion {
56       package = pyrosimple;
57       command = "pyroadmin --version";
58     };
59   };
61   meta = with lib; {
62     description = "RTorrent client";
63     homepage = "https://kannibalox.github.io/pyrosimple/";
64     changelog = "https://github.com/kannibalox/pyrosimple/blob/v${version}/CHANGELOG.md";
65     license = licenses.gpl3Plus;
66     maintainers = with maintainers; [ ne9z vamega ];
67   };