Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / fl / flexget / package.nix
blob26ea275144a707700dd110b1bfcc711223988acf
1 { lib
2 , python3
3 , python311
4 , fetchFromGitHub
5 }:
7 let
8   python = if (builtins.tryEval python3.pkgs.nose.outPath).success
9     then python3
10     else python311;
13 python.pkgs.buildPythonApplication rec {
14   pname = "flexget";
15   version = "3.11.41";
16   pyproject = true;
18   # Fetch from GitHub in order to use `requirements.in`
19   src = fetchFromGitHub {
20     owner = "Flexget";
21     repo = "Flexget";
22     rev = "refs/tags/v${version}";
23     hash = "sha256-ZSqkD53fdDnKulVPgM9NWXVFXDR0sZ94mRyV1iKS87o=";
24   };
26   postPatch = ''
27     # remove dependency constraints but keep environment constraints
28     sed 's/[~<>=][^;]*//' -i requirements.txt
29   '';
31   build-system = with python.pkgs; [
32     setuptools
33     wheel
34   ];
36   dependencies = with python.pkgs; [
37     # See https://github.com/Flexget/Flexget/blob/master/pyproject.toml
38     apscheduler
39     beautifulsoup4
40     colorama
41     feedparser
42     guessit
43     html5lib
44     jinja2
45     jsonschema
46     loguru
47     psutil
48     pynzb
49     pyrss2gen
50     python-dateutil
51     pyyaml
52     rebulk
53     requests
54     rich
55     rpyc
56     sqlalchemy
58     # WebUI requirements
59     cherrypy
60     flask-compress
61     flask-cors
62     flask-login
63     flask-restx
64     flask
65     packaging
66     pyparsing
67     werkzeug
68     zxcvbn
69     pendulum
71     # Plugins requirements
72     transmission-rpc
73     qbittorrent-api
74     deluge-client
75     cloudscraper
76     python-telegram-bot
77   ];
79   pythonImportsCheck = [
80     "flexget"
81     "flexget.api.core.authentication"
82     "flexget.api.core.database"
83     "flexget.api.core.plugins"
84     "flexget.api.core.schema"
85     "flexget.api.core.server"
86     "flexget.api.core.tasks"
87     "flexget.api.core.user"
88     "flexget.components.thetvdb.api"
89     "flexget.components.tmdb.api"
90     "flexget.components.trakt.api"
91     "flexget.components.tvmaze.api"
92     "flexget.plugins.clients.aria2"
93     "flexget.plugins.clients.deluge"
94     "flexget.plugins.clients.nzbget"
95     "flexget.plugins.clients.pyload"
96     "flexget.plugins.clients.qbittorrent"
97     "flexget.plugins.clients.rtorrent"
98     "flexget.plugins.clients.transmission"
99     "flexget.plugins.services.kodi_library"
100     "flexget.plugins.services.myepisodes"
101     "flexget.plugins.services.pogcal_acquired"
102   ];
104   # ~400 failures
105   doCheck = false;
107   meta = with lib; {
108     homepage = "https://flexget.com/";
109     changelog = "https://github.com/Flexget/Flexget/releases/tag/v${version}";
110     description = "Multipurpose automation tool for all of your media";
111     license = licenses.mit;
112     maintainers = with maintainers; [ pbsds ];
113   };