pip>=25.0.1;python_version<"3.9"
pip>=25.2;python_version>="3.9"
packaging>=25.0
setuptools~=70.2;python_version<"3.10"
setuptools>=80.9.0;python_version>="3.10"
wheel>=0.45.1
attrs>=25.3.0
certifi>=2025.8.3
exceptiongroup>=1.3.0
websockets~=13.1;python_version<"3.9"
websockets>=15.0.1;python_version>="3.9"
filelock~=3.16.1;python_version<"3.9"
filelock>=3.19.1;python_version>="3.9"
fasteners>=0.20
mycdp>=1.2.0
pynose>=1.5.5
platformdirs>=4.3.6;python_version<"3.9"
platformdirs>=4.4.0;python_version>="3.9"
typing-extensions>=4.13.2
sbvirtualdisplay>=1.4.0
MarkupSafe==2.1.5;python_version<"3.9"
MarkupSafe>=3.0.2;python_version>="3.9"
Jinja2>=3.1.6
six>=1.17.0
parse>=1.20.2
parse-type>=0.6.6
colorama>=0.4.6
pyyaml>=6.0.2
pygments>=2.19.2
pyreadline3>=3.5.3;platform_system=="Windows"
tabcompleter>=1.4.0
pdbp>=1.7.1
idna==3.10
chardet==5.2.0
charset-normalizer>=3.4.3,<4
urllib3>=1.26.20,<2;python_version<"3.10"
urllib3>=1.26.20,<2.6.0;python_version>="3.10"
requests==2.32.4;python_version<"3.9"
requests~=2.32.5;python_version>="3.9"
sniffio==1.3.1
h11==0.16.0
outcome==1.3.0.post0
trio==0.27.0;python_version<"3.9"
trio~=0.30.0;python_version>="3.9"
trio-websocket~=0.12.2
wsproto==1.2.0
websocket-client~=1.8.0
selenium==4.27.1;python_version<"3.9"
selenium==4.32.0;python_version>="3.9" and python_version<"3.10"
selenium==4.35.0;python_version>="3.10"
cssselect==1.2.0;python_version<"3.9"
cssselect==1.3.0;python_version>="3.9"
sortedcontainers==2.4.0
execnet==2.1.1
iniconfig==2.1.0
pluggy==1.5.0;python_version<"3.9"
pluggy==1.6.0;python_version>="3.9"
pytest==8.3.5;python_version<"3.9"
pytest==8.4.2;python_version>="3.9"
pytest-html==4.0.2
pytest-metadata==3.1.1
pytest-ordering==0.6
pytest-rerunfailures==14.0;python_version<"3.9"
pytest-rerunfailures==16.0.1;python_version>="3.9"
pytest-xdist==3.6.1;python_version<"3.9"
pytest-xdist==3.8.0;python_version>="3.9"
parameterized==0.9.0
behave==1.2.6
soupsieve==2.7;python_version<"3.9"
soupsieve~=2.8;python_version>="3.9"
beautifulsoup4~=4.13.5
pyotp==2.9.0
python-xlib==0.33;platform_system=="Linux"
markdown-it-py==3.0.0;python_version<"3.10"
markdown-it-py==4.0.0;python_version>="3.10"
mdurl==0.1.2
rich>=14.1.0,<15

# --- Testing Requirements --- #
# ("pip install -r requirements.txt" also installs this, but "pip install -e ." won't.)

coverage>=7.6.1;python_version<"3.9"
coverage>=7.10.6;python_version>="3.9"
pytest-cov>=5.0.0;python_version<"3.9"
pytest-cov>=7.0.0;python_version>="3.9"
flake8==5.0.4;python_version<"3.9"
flake8==7.3.0;python_version>="3.9"
mccabe==0.7.0
pyflakes==2.5.0;python_version<"3.9"
pyflakes==3.4.0;python_version>="3.9"
pycodestyle==2.9.1;python_version<"3.9"
pycodestyle==2.14.0;python_version>="3.9"
