#-------------------------------------------------------------------------------
# This file contains engine python requirement version pins.
# Changing versions might have side effects!
#
# An important point to highlight here is that this file contains all the
# dependencies that is potentially needed for various combinations and
# scenarios supported by the framework. This means that we might be installing
# some unnecessary dependencies for the scenarios supported by the framework
# by collecting everything in one place. An example to this is installing
# libvirt dependencies that are not actually needed for cloud/heat based
# deployments and vice versa. However, this is a very small cost comparing the
# benefits we get such as having ability to list, manage, and install python
# packages in one place or for pinning versions to ensure reproducibility.
# If we see the need to adjust and limit the packages we need to install
# dependending on the scenario, we can fine tune what is installed where by
# introducing additional requirements files.
#
# Finally, this list currently only contains the dependencies required for
# the engine itself meaning that the dependencies required for scenarios that
# are developed in swconfig repo is not part of the file. They will be included
# and controlled using this file over time once the basics are in place.
#-------------------------------------------------------------------------------

# NOTE: engine top level requirements
alembic==1.4.2
amqp==2.5.2
ansible==2.9.6
appdirs==1.4.3
ara==1.3.2
asn1crypto==1.3.0
attrs==19.3.0
automaton==2.0.0
Babel==2.8.0
bcrypt==3.1.7
beautifulsoup4==4.8.2
bindep==2.8.1
cachetools==4.0.0
certifi==2019.11.28
cffi==1.14.0
chardet==3.0.4
click==7.1.1
cliff==3.0.0
cmd2==0.8.9
configparser==5.0.0
construct==2.8.22
cryptography==2.8
debtcollector==2.0.0
decorator==4.4.2
dictdiffer==0.8.1
diskimage-builder==2.34.1
distlib==0.3.0
distro==1.4.0
Django==2.2.11
django-cors-headers==3.2.1
django-filter==2.2.0
django-health-check==3.12.1
djangorestframework==3.11.0
dnspython==1.15.0
docker==4.2.0
dogpile.cache==0.9.0
dulwich==0.19.15
dynaconf==2.2.3
entrypoints==0.3
eventlet==0.25.1
extras==1.0.0
fasteners==0.14.1
filelock==3.0.12
fixtures==3.0.0
flake8==3.7.9
Flask==1.1.1
Flask-Migrate==2.5.3
Flask-Script==2.0.6
Flask-SQLAlchemy==2.4.1
Frozen-Flask==0.15
futurist==2.1.0
git-review==1.28.0
gitdb==4.0.2
gitdb2==4.0.2
GitPython==3.1.0
google-auth==1.12.0
greenlet==0.4.15
hacking==2.0.0
idna==2.9
ifaddr==0.1.6
importlib-metadata==1.5.2
importlib-resources==1.4.0
ironic==14.0.0
ironic-inspector==10.0.0
ironic-lib==4.1.0
ironic-python-agent-builder==1.1.0
iso8601==0.1.12
itsdangerous==1.1.0
Jinja2==2.11.1
jmespath==0.9.5
jsonpatch==1.25
jsonpath-rw==1.4.0
jsonpointer==2.0
jsonschema==3.2.0
junit-xml==1.9
keystoneauth1==3.18.0
keystonemiddleware==8.0.0
kolla==9.0.1
kolla-ansible==9.0.1
kombu==4.6.8
kubernetes==11.0.0
libvirt-python==6.1.0
linecache2==1.0.0
logutils==0.3.5
lxml==4.5.0
Mako==1.1.2
MarkupSafe==1.1.1
mccabe==0.6.1
monotonic==1.5
more-itertools==8.2.0
msgpack==0.6.2
munch==2.5.0
netaddr==0.7.19
netifaces==0.10.9
networkx==2.4
oauthlib==3.1.0
openshift==0.11.0
openstacksdk==0.43.0
os-client-config==2.0.0
os-service-types==1.7.0
os-traits==2.2.0
osc-lib==2.0.0
oslo.cache==2.2.0
oslo.concurrency==4.0.1
oslo.config==8.0.1
oslo.context==3.0.0
oslo.db==8.0.0
oslo.i18n==4.0.0
oslo.log==4.1.0
oslo.messaging==12.0.0
oslo.middleware==4.0.1
oslo.policy==3.0.2
oslo.reports==2.0.0
oslo.rootwrap==6.0.1
oslo.serialization==3.1.0
oslo.service==2.1.0
oslo.upgradecheck==1.0.0
oslo.utils==4.1.0
oslo.versionedobjects==2.0.1
osprofiler==3.0.0
paramiko==2.7.1
Parsley==1.3
Paste==3.4.0
PasteDeploy==2.1.0
pbr==5.4.4
pecan==1.3.3
pip==20.0.2
ply==3.11
prettytable==0.7.2
proliantutils==2.9.4
psutil==5.7.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycadf==3.0.0
pycodestyle==2.5.0
pycparser==2.20
pycryptodomex==3.9.7
pyfakefs==4.0.2
pyflakes==2.1.1
pyghmi==1.5.13
Pygments==2.6.1
pyinotify==0.9.6
PyMySQL==0.9.3
PyNaCl==1.3.0
pyOpenSSL==19.1.0
pyparsing==2.4.6
pyperclip==1.7.0
pyrsistent==0.16.0
pysendfile==2.0.1
pysmi==0.3.4
pysnmp==4.4.12
python-box==3.4.6
python-cinderclient==6.0.0
python-dateutil==2.8.1
python-dotenv==0.12.0
python-editor==1.0.4
python-glanceclient==3.0.0
python-heatclient==2.0.0
python-ironic-inspector-client==4.0.0
python-ironicclient==4.0.0
python-keystoneclient==3.22.0
python-mimeparse==1.6.0
python-neutronclient==7.1.0
python-novaclient==16.0.0
python-openstackclient==5.1.0
python-string-utils==1.0.0
python-subunit==1.4.0
python-swiftclient==3.9.0
pytz==2019.3
PyYAML==5.3.1
pyzmq==19.0.0
reno==3.0.0
repoze.lru==0.7
requests==2.23.0
requests-oauthlib==1.3.0
requestsexceptions==1.4.0
retrying==1.3.3
rfc3986==1.3.2
Routes==2.4.1
rsa==4.0
ruamel.yaml==0.16.10
ruamel.yaml.clib==0.2.0
shade==1.33.0
simplegeneric==0.8.1
simplejson==3.17.0
six==1.14.0
smmap==3.0.1
smmap2==3.0.1
soupsieve==2.0
SQLAlchemy==1.3.15
sqlalchemy-migrate==0.13.0
sqlparse==0.3.1
statsd==3.3.0
stevedore==1.32.0
sushy==3.1.0
Tempita==0.5.2
tenacity==6.1.0
testresources==2.0.1
testscenarios==0.5.0
testtools==2.4.0
toml==0.10.0
tooz==2.2.0
traceback2==1.4.0
tzlocal==2.0.0
unittest2==1.1.0
urllib3==1.25.8
vine==1.3.0
virtualbmc==2.0.0
virtualenv==20.0.14
voluptuous==0.11.7
waitress==1.4.3
warlock==1.3.3
wcwidth==0.1.9
WebOb==1.8.6
websocket-client==0.57.0
WebTest==2.0.34
Werkzeug==1.0.0
whitenoise==5.0.1
wrapt==1.12.1
WSME==0.9.3
XStatic==1.0.2
XStatic-Bootstrap-SCSS==3.3.7.1
XStatic-DataTables==1.10.15.1
XStatic-jQuery==1.12.4.1
XStatic-Patternfly==3.21.0.1
XStatic-Patternfly-Bootstrap-Treeview==2.1.3.2
yappi==1.2.3
zeroconf==0.24.5
zipp==3.1.0
