eventlet>=0.31.0 feedgen~=0.9 flask-compress flask-login~=0.5 flask-paginate flask_expects_json~=1.7 flask_restful flask_wtf flask~=2.0 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 chardet>2.3.0 wtforms~=3.0 jsonpath-ng~=1.5.3 # dnspython 2.3.0 is not compatible with eventlet # * https://github.com/eventlet/eventlet/issues/781 # * https://datastax-oss.atlassian.net/browse/PYTHON-1320 dnspython<2.3.0 # jq not available on Windows so must be installed manually # Notification library apprise~=1.6.0 # apprise mqtt https://github.com/dgtlmoon/changedetection.io/issues/315 paho-mqtt # 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. lxml # 3.141 was missing socksVersion, 3.150 was not in pypi, so we try 4.1.0 selenium~=4.1.0 # https://stackoverflow.com/questions/71652965/importerror-cannot-import-name-safe-str-cmp-from-werkzeug-security/71653849#71653849 # ImportError: cannot import name 'safe_str_cmp' from 'werkzeug.security' # need to revisit flask login versions werkzeug~=2.0.0 # Templating, so far just in the URLs but in the future can be for the notifications also jinja2~=3.1 jinja2-time # 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 == "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 # 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