#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile --output-file=constraints.txt requirements.txt
#
anytree==2.8.0
    # via -r requirements.txt
appdirs==1.4.4
    # via
    #   -r requirements.txt
    #   mbed-os-tools
    #   virtualenv
appnope==0.1.2
    # via -r requirements.txt
attrs==21.2.0
    # via pytest
backcall==0.2.0
    # via ipython
beautifulsoup4==4.10.0
    # via mbed-os-tools
bitstring==3.1.7
    # via -r requirements.esp32.txt
brotli==1.0.9
    # via flask-compress
cbor==1.0.0
    # via -r requirements.txt
certifi==2021.5.30
    # via requests
cffi==1.14.5
    # via cryptography
chardet==4.0.0
    # via requests
click==7.1.2
    # via
    #   -r requirements.esp32.txt
    #   -r requirements.txt
    #   flask
    #   mbed-tools
    #   pip-tools
colorama==0.4.4
    # via
    #   mbed-os-tools
    #   west
coloredlogs==15.0.1
    # via -r requirements.txt
construct==2.10.54
    # via -r requirements.esp32.txt
cryptography==3.4.7
    # via -r requirements.esp32.txt
cxxfilt==0.2.2
    # via -r requirements.txt
dbus-python==1.2.16 ; sys_platform == "linux"
    # via -r requirements.txt
decorator==5.0.9
    # via ipython
distlib==0.3.2
    # via virtualenv
docopt==0.6.2
    # via pykwalify
ecdsa==0.17.0
    # via -r requirements.esp32.txt
fastcore==1.3.26
    # via ghapi
fasteners==0.16.3
    # via mbed-os-tools
filelock==3.0.12
    # via virtualenv
flask-compress==1.10.0
    # via gdbgui
flask-socketio==2.9.6
    # via gdbgui
flask==0.12.5
    # via
    #   flask-compress
    #   flask-socketio
    #   gdbgui
future==0.18.2
    # via
    #   -r requirements.esp32.txt
    #   mbed-os-tools
    #   mobly
gdbgui==0.13.2.0
    # via -r requirements.esp32.txt
gevent==1.5.0
    # via gdbgui
ghapi==0.1.19
    # via -r requirements.txt
gitdb==4.0.7
    # via gitpython
gitpython==3.1.14
    # via mbed-tools
greenlet==1.1.0
    # via gevent
humanfriendly==9.2
    # via coloredlogs
idna==2.10
    # via requests
iniconfig==1.1.1
    # via pytest
intelhex==2.3.0
    # via
    #   -r requirements.txt
    #   mbed-os-tools
ipython-genutils==0.2.0
    # via traitlets
ipython==7.24.1
    # via -r requirements.txt
itsdangerous==2.0.1
    # via flask
jedi==0.18.0
    # via ipython
jinja2==3.0.1
    # via
    #   flask
    #   mbed-tools
junit-xml==1.9
    # via mbed-os-tools
kconfiglib==13.7.1
    # via -r requirements.esp32.txt
lockfile==0.12.2
    # via
    #   -r requirements.txt
    #   mbed-os-tools
mako==1.1.4
    # via pdoc3
markdown==3.3.4
    # via pdoc3
markupsafe==2.0.1
    # via
    #   jinja2
    #   mako
matplotlib-inline==0.1.2
    # via ipython
mbed-ls==1.8.11 ; platform_machine != "aarch64" and sys_platform == "linux"
    # via -r requirements.mbed.txt
mbed-os-tools==1.8.11
    # via mbed-ls
mbed-tools==7.49.1 ; platform_machine != "aarch64" and sys_platform == "linux"
    # via -r requirements.mbed.txt
mobly==1.10.1
    # via -r requirements.txt
numpy==1.20.3
    # via pandas
packaging==20.9
    # via
    #   fastcore
    #   ghapi
    #   pytest
    #   west
pandas==1.2.4 ; platform_machine != "aarch64" and platform_machine != "arm64"
    # via -r requirements.txt
parso==0.8.2
    # via jedi
pdoc3==0.9.2
    # via mbed-tools
pep517==0.10.0
    # via pip-tools
pexpect==4.8.0
    # via ipython
pgi==0.0.11.2 ; sys_platform == "linux"
    # via -r requirements.txt
pickleshare==0.7.5
    # via ipython
pip-tools==6.1.0
    # via -r requirements.txt
pluggy==1.0.0
    # via pytest
portpicker==1.4.0
    # via
    #   -r requirements.txt
    #   mobly
prettytable==2.2.1
    # via
    #   mbed-ls
    #   mbed-os-tools
prompt-toolkit==3.0.21
    # via ipython
protobuf==3.17.3
    # via -r requirements.txt
psutil==5.8.0
    # via
    #   -r requirements.txt
    #   mbed-tools
    #   mobly
ptyprocess==0.7.0
    # via pexpect
py==1.10.0
    # via pytest
pycparser==2.20
    # via cffi
pyelftools==0.27
    # via -r requirements.esp32.txt
pygdbmi==0.9.0.2
    # via
    #   -r requirements.esp32.txt
    #   gdbgui
pygments==2.9.0
    # via
    #   gdbgui
    #   ipython
pykwalify==1.8.0
    # via west
pyparsing==2.3.1
    # via
    #   -r requirements.esp32.txt
    #   packaging
pyserial==3.5
    # via
    #   -r requirements.esp32.txt
    #   mbed-os-tools
    #   mbed-tools
    #   mobly
pytest==6.2.5 ; platform_machine != "aarch64" and sys_platform == "linux"
    # via -r requirements.mbed.txt
python-dateutil==2.8.1
    # via
    #   pandas
    #   pykwalify
python-dotenv==0.17.1
    # via mbed-tools
python-engineio==3.14.2
    # via python-socketio
python-socketio==4.6.1
    # via
    #   -r requirements.esp32.txt
    #   flask-socketio
pytz==2021.1
    # via pandas
pyudev==0.22.0
    # via mbed-tools
pyyaml==5.4.1
    # via
    #   mobly
    #   west
reedsolo==1.5.4
    # via -r requirements.esp32.txt
requests==2.25.1
    # via
    #   -r requirements.txt
    #   mbed-os-tools
    #   mbed-tools
ruamel.yaml.clib==0.2.2
    # via ruamel.yaml
ruamel.yaml==0.17.9
    # via pykwalify
six==1.16.0
    # via
    #   anytree
    #   ecdsa
    #   fasteners
    #   junit-xml
    #   mbed-os-tools
    #   protobuf
    #   python-dateutil
    #   python-engineio
    #   python-socketio
    #   pyudev
    #   virtualenv
smmap==4.0.0
    # via gitdb
soupsieve==2.2.1
    # via beautifulsoup4
tabulate==0.8.9
    # via mbed-tools
timeout-decorator==0.5.0
    # via mobly
toml==0.10.2
    # via
    #   pep517
    #   pytest
tqdm==4.61.1
    # via mbed-tools
traitlets==5.0.5
    # via
    #   ipython
    #   matplotlib-inline
typing-extensions==3.10.0.0
    # via mbed-tools
urllib3==1.26.5
    # via requests
virtualenv==20.4.7
    # via -r requirements.txt
watchdog==2.1.2
    # via -r requirements.txt
wcwidth==0.2.5
    # via
    #   prettytable
    #   prompt-toolkit
werkzeug==0.16.1
    # via flask
west==0.12.0
    # via -r requirements.txt
wheel==0.36.2
    # via -r requirements.txt

# The following packages are considered to be unsafe in a requirements file:
# pip
# setuptools
