aiortc>=1.9.0
av==14.2.0 # pinning due to: https://github.com/PyAV-Org/PyAV/issues/2082
APScheduler>=3.10.1,<4.0.0
asyncua~=1.1.5
cachetools<6.0.0
cython~=3.0.0
python-dotenv~=1.0.0
fastapi>=0.100,<0.116  # be careful with upper pin - fastapi might remove support for on_event
numpy>=2.0.0,<2.4.0
opencv-python>=4.8.1.78,<=4.10.0.84
opencv-contrib-python>=4.8.1.78,<=4.10.0.84  # Note: opencv-python considers this as a bad practice, but since our dependencies rely on both we pin both here
pillow>=11.0,<12.0
prometheus-fastapi-instrumentator<=6.0.0
psutil>=7.0.0
redis~=5.0.0
requests>=2.32.0,<3.0.0
rich>=13.0.0,<15.0.0
supervision>=0.27.0
pybase64~=1.0.0
scikit-image>=0.19.0,<=0.25.2
requests-toolbelt~=1.0.0
wheel>=0.38.1,<=0.45.1
setuptools>=70.0.0  # lack of upper-bound to ensure compatibility with Google Colab (builds to define one if needed)
networkx>=3.0.0,<4.0.0
pydantic>=2.8.0,<2.12.0
pydantic-settings<2.8
openai>=1.12.0,<2.0.0
structlog>=24.1.0,<25.0.0
zxing-cpp~=2.2.0
boto3>=1.40.0,<=1.41.5
botocore>=1.40.0,<=1.41.5
typing_extensions>=4.8.0,<=4.15.0
pydot~=2.0.0
shapely>=2.0.4,<2.1.0
tldextract~=5.1.2
packaging~=24.0
anthropic~=0.49.0
pandas>=2.2.3,<3.0.0
paho-mqtt~=1.6.1
pytest>=8.0.0,<9.0.0  # this is not a joke, sam2 requires this as the fork we are using is dependent on that, yet
# do not mark the dependency: https://github.com/SauravMaheshkar/samv2/blob/main/sam2/utils/download.py
tokenizers>=0.19.0,<0.23.0
slack-sdk~=3.33.4
twilio~=9.3.7
httpx~=0.28.1
pylogix==1.0.5
pymodbus>=3.6.9,<=3.8.3
backoff~=2.2.0
filelock>=3.12.0,<=3.17.0
onvif-zeep-async==2.0.0 # versions > 2.0.0 will not work with Python 3.9 despite docs
simple-pid~=2.0.1
qrcode~=8.0.0
trackers~=2.3.0
