# Used by Pyppeteer pyee # eventlet 0.33.3 was related to dnspython fixes # 0.34.1 - fixes python 3.12 "AttributeError: module 'ssl' has no attribute 'wrap_socket'" eventlet==0.34.1 # related to dnspython fixes feedgen~=0.9 flask-compress # 0.6.3 included compatibility fix for werkzeug 3.x (2.x had deprecation of url handlers) flask-login>=0.6.3 flask-paginate flask_expects_json~=1.7 flask_restful flask_cors # For the Chrome extension to operate flask_wtf~=1.2 flask~=2.3 inscriptis~=2.2 pytz timeago~=1.0 validators~=0.21 # Set these versions together to avoid a RequestsDependencyWarning # >= 2.26 also adds Brotli support if brotli is installed brotli~=1.0 requests[socks] urllib3==1.26.18 chardet>2.3.0 wtforms~=3.0 jsonpath-ng~=1.5.3 # Pinned: module 'eventlet.green.select' has no attribute 'epoll' # https://github.com/eventlet/eventlet/issues/805#issuecomment-1640463482 dnspython==2.3.0 # related to eventlet fixes # jq not available on Windows so must be installed manually # Notification library apprise~=1.8.0 # apprise mqtt https://github.com/dgtlmoon/changedetection.io/issues/315 # and 2.0.0 https://github.com/dgtlmoon/changedetection.io/issues/2241 not yet compatible # use v1.x due to https://github.com/eclipse/paho.mqtt.python/issues/814 paho-mqtt>=1.6.1,<2.0.0 # This mainly affects some ARM builds, which unlike the other builds ignores "ARG CRYPTOGRAPHY_DONT_BUILD_RUST=1" # so without this pinning, the newer versions on ARM will forcefully try to build rust, which results in "rust compiler not found" # (introduced once apprise became a dep) cryptography~=3.4 # Used for CSS filtering beautifulsoup4 # XPath filtering, lxml is required by bs4 anyway, but put it here to be safe. # #2328 - 5.2.0 and 5.2.1 had extra CPU flag CFLAGS set which was not compatible on older hardware # It could be advantageous to run its own pypi package here with those performance flags set # https://bugs.launchpad.net/lxml/+bug/2059910/comments/16 lxml >=4.8.0,<6,!=5.2.0,!=5.2.1 # XPath 2.0-3.1 support - 4.2.0 broke something? elementpath==4.1.5 selenium~=4.14.0 werkzeug~=3.0 # Templating, so far just in the URLs but in the future can be for the notifications also jinja2~=3.1 jinja2-time openpyxl # https://peps.python.org/pep-0508/#environment-markers # https://github.com/dgtlmoon/changedetection.io/pull/1009 jq~=1.3; python_version >= "3.8" and sys_platform == "darwin" jq~=1.3; python_version >= "3.8" and sys_platform == "linux" # Any current modern version, required so far for screenshot PNG->JPEG conversion but will be used more in the future pillow # playwright is installed at Dockerfile build time because it's not available on all platforms pyppeteer-ng==2.0.0rc5 pyppeteerstealth>=0.0.4 # Include pytest, so if theres a support issue we can ask them to run these tests on their setup pytest ~=7.2 pytest-flask ~=1.2 # Pin jsonschema version to prevent build errors on armv6 while rpds-py wheels aren't available (1708) jsonschema==4.17.3 loguru