pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / servers / web-apps / changedetection-io / default.nix
blobb87d71867d417f81ac614107c5d91fbd3ef71cf1
1 { lib
2 , fetchFromGitHub
3 , python3
4 }:
6 python3.pkgs.buildPythonApplication rec {
7   pname = "changedetection-io";
8   version = "0.46.04";
9   format = "setuptools";
11   src = fetchFromGitHub {
12     owner = "dgtlmoon";
13     repo = "changedetection.io";
14     rev = "refs/tags/${version}";
15     hash = "sha256-V1nGVURA4nksDX0kXxfPbO/rB0nmECqpfysenpzcfZs=";
16   };
18   postPatch = ''
19     substituteInPlace requirements.txt \
20       --replace "apprise~=1.8.0" "apprise" \
21       --replace "cryptography~=3.4" "cryptography" \
22       --replace "dnspython==2.6.1" "dnspython" \
23       --replace "pytest ~=7.2" "" \
24       --replace "pytest-flask ~=1.2" "" \
25       --replace "selenium~=4.14.0" "selenium" \
26       --replace "werkzeug~=3.0" "werkzeug"
27   '';
29   propagatedBuildInputs = with python3.pkgs; [
30     apprise
31     beautifulsoup4
32     brotli
33     babel
34     chardet
35     cryptography
36     dnspython
37     elementpath
38     eventlet
39     feedgen
40     flask
41     flask-compress
42     flask-cors
43     flask-expects-json
44     flask-login
45     flask-paginate
46     flask-restful
47     flask-wtf
48     greenlet
49     inscriptis
50     jinja2
51     jinja2-time
52     jsonpath-ng
53     jq
54     loguru
55     lxml
56     paho-mqtt
57     playwright
58     pyee
59     pyppeteer
60     pytz
61     requests
62     selenium
63     setuptools
64     timeago
65     urllib3
66     validators
67     werkzeug
68     wtforms
69   ] ++ requests.optional-dependencies.socks;
71   # tests can currently not be run in one pytest invocation and without docker
72   doCheck = false;
74   nativeCheckInputs = with python3.pkgs; [
75     pytest-flask
76     pytestCheckHook
77   ];
79   meta = with lib; {
80     description = "Self-hosted free open source website change detection tracking, monitoring and notification service";
81     homepage = "https://github.com/dgtlmoon/changedetection.io";
82     changelog = "https://github.com/dgtlmoon/changedetection.io/releases/tag/${version}";
83     license = licenses.asl20;
84     maintainers = with maintainers; [ mikaelfangel ];
85     mainProgram = "changedetection.io";
86   };