PyJWT>=2.5.0
PyNaCl>=1.5.0
aiodiscover>=1.4.13
aiohttp>=3.8.4
aiohttp_cors>=0.7.0
astral>=2.2
async-upnp-client>=0.33.1
async_timeout>=4.0.2
atomicwrites-homeassistant>=1.4.1
attrs>=22.2.0
awesomeversion>=22.9.0
bcrypt>=4.0.1
bleak-retry-connector>=2.13.0
bleak>=0.19.5
bluetooth-adapters>=0.15.2
bluetooth-auto-recovery>=1.0.3
bluetooth-data-tools>=0.3.1
certifi>=2021.5.30
ciso8601>=2.3.0
cryptography>=39.0.1
dbus-fast>=1.84.1
fnvhash>=0.1.0
hass-nabucasa>=0.61.0
hassil>=1.0.6
home-assistant-bluetooth>=1.9.3
home-assistant-frontend>=20230301.0
home-assistant-intents>=2023.2.28
httpx>=0.23.3
ifaddr>=0.1.7
janus>=1.0.0
jinja2>=3.1.2
lru-dict>=1.1.8
orjson>=3.8.6
paho-mqtt>=1.6.1
pillow>=9.4.0
pip>=21.0,<23.1
psutil-home-assistant>=0.0.1
pyOpenSSL>=23.0.0
pyserial>=3.5
python-slugify>=4.0.1
pyudev>=0.23.2
pyyaml>=6.0
requests>=2.28.1
scapy>=2.5.0
sqlalchemy>=2.0.4
typing-extensions>=4.5.0,<5.0
voluptuous-serialize>=2.6.0
voluptuous>=0.13.1
yarl>=1.8.1
zeroconf>=0.47.3

# Constrain pycryptodome to avoid vulnerability
# see https://github.com/home-assistant/core/pull/16238
pycryptodome>=3.6.6

# Constrain urllib3 to ensure we deal with CVE-2020-26137 and CVE-2021-33503
urllib3>=1.26.5

# Constrain httplib2 to protect against GHSA-93xj-8mrv-444m
# https://github.com/advisories/GHSA-93xj-8mrv-444m
httplib2>=0.19.0

# gRPC is an implicit dependency that we want to make explicit so we manage
# upgrades intentionally. It is a large package to build from source and we
# want to ensure we have wheels built.
grpcio>=1.51.1
grpcio-status>=1.51.1
grpcio-reflection>=1.51.1

# libcst >=0.4.0 requires a newer Rust than we currently have available,
# thus our wheels builds fail. This pins it to the last working version,
# which at this point satisfies our needs.
libcst>=0.3.23

# This is a old unmaintained library and is replaced with pycryptodome
pycrypto>=1000000000.0.0

# This is a old unmaintained library and is replaced with faust-cchardet
cchardet>=1000000000.0.0

# To remove reliance on typing
btlewrap>=0.0.10

# This overrides a built-in Python package
enum34>=1000000000.0.0
typing>=1000000000.0.0
uuid>=1000000000.0.0

# regex causes segfault with version 2021.8.27
# https://bitbucket.org/mrabarnett/mrab-regex/issues/421/2021827-results-in-fatal-python-error
# This is fixed in 2021.8.28
regex>=2021.8.28

# httpx requires httpcore, and httpcore requires anyio and h11, but the version constraints on
# these requirements are quite loose. As the entire stack has some outstanding issues, and
# even newer versions seem to introduce new issues, it's useful for us to pin all these
# requirements so we can directly link HA versions to these library versions.
anyio>=3.6.2
h11>=0.14.0
httpcore>=0.16.3

# Ensure we have a hyperframe version that works in Python 3.10
# 5.2.0 fixed a collections abc deprecation
hyperframe>=5.2.0

# Ensure we run compatible with musllinux build env
numpy>=1.23.2

# Prevent dependency conflicts between sisyphus-control and aioambient
# until upper bounds for sisyphus-control have been updated
# https://github.com/jkeljo/sisyphus-control/issues/6
python-engineio>=3.13.1,<4.0
python-socketio>=4.6.0,<5.0

# Constrain multidict to avoid typing issues
# https://github.com/home-assistant/core/pull/67046
multidict>=6.0.2

# Required for compatibility with point integration - ensure_active_token
# https://github.com/home-assistant/core/pull/68176
authlib<1.0

# Version 2.0 added typing, prevent accidental fallbacks
backoff>=2.0

# Breaking change in version
# https://github.com/samuelcolvin/pydantic/issues/4092
pydantic!=1.9.1

# Breaks asyncio
# https://github.com/pubnub/python/issues/130
pubnub!=6.4.0

# Package's __init__.pyi stub has invalid syntax and breaks mypy
# https://github.com/dahlia/iso4217/issues/16
iso4217!=1.10.20220401

# Pandas 1.4.4 has issues with wheels om armhf + Py3.10
pandas>=1.4.3

# Matplotlib 3.6.2 has issues building wheels on armhf/armv7
# We need at least >=2.1.0 (tensorflow integration -> pycocotools)
matplotlib>=3.6.1

# pyOpenSSL 23.0.0 or later required to avoid import errors when
# cryptography 39.0.0 is installed with botocore
pyOpenSSL>=23.0.0

# uamqp newer versions we currently can't build for armv7/armhf
# Limit this to Python 3.10, to not block Python 3.11 dev for now
uamqp>=1.6.0;python_version<'3.11'

# faust-cchardet: Ensure we have a version we can build wheels
# 2.1.18 is the first version that works with our wheel builder
faust-cchardet>=2.1.18
