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

# Set these versions together to avoid a RequestsDependencyWarning
# >= 2.26 also adds Brotli support if brotli is installed
brotli~=1.0
requests[socks] ~=2.28

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.3.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
