#######################################################################################
# Copyright ETSI Contributors and Others.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#######################################################################################
aiokafka==0.7.2
    # via -r requirements.in
appdirs==1.4.4
    # via openstacksdk
attrs==22.1.0
    # via cmd2
autopage==0.5.1
    # via cliff
backports-zoneinfo==0.2.1
    # via
    #   pytz-deprecation-shim
    #   tzlocal
certifi==2022.9.24
    # via
    #   -r requirements.in
    #   requests
cffi==1.15.1
    # via
    #   -r requirements.in
    #   cryptography
charset-normalizer==2.1.1
    # via
    #   -r requirements.in
    #   requests
cliff==4.0.0
    # via
    #   gnocchiclient
    #   osc-lib
    #   python-neutronclient
cmd2==2.4.2
    # via cliff
contourpy==1.0.5
    # via matplotlib
cryptography==38.0.1
    # via
    #   -r requirements.in
    #   openstacksdk
cycler==0.11.0
    # via matplotlib
dateparser==1.1.1
    # via prometheus-api-client
debtcollector==2.5.0
    # via
    #   gnocchiclient
    #   oslo-config
    #   oslo-context
    #   oslo-log
    #   oslo-utils
    #   python-keystoneclient
    #   python-neutronclient
decorator==5.1.1
    # via
    #   dogpile-cache
    #   openstacksdk
dogpile-cache==1.1.8
    # via openstacksdk
fonttools==4.37.4
    # via matplotlib
futurist==2.4.1
    # via gnocchiclient
gnocchiclient==7.0.7
    # via -r requirements.in
httmock==1.4.0
    # via prometheus-api-client
humanfriendly==10.0
    # via
    #   -r requirements.in
    #   pyvcloud
idna==3.4
    # via requests
importlib-metadata==5.0.0
    # via cliff
iso8601==1.1.0
    # via
    #   gnocchiclient
    #   keystoneauth1
    #   openstacksdk
    #   oslo-utils
    #   python-ceilometerclient
    #   python-neutronclient
    #   python-novaclient
jmespath==1.0.1
    # via openstacksdk
jsonpatch==1.32
    # via openstacksdk
jsonpointer==2.3
    # via jsonpatch
kafka-python==2.0.2
    # via aiokafka
keystoneauth1==5.0.0
    # via
    #   gnocchiclient
    #   openstacksdk
    #   osc-lib
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
kiwisolver==1.4.4
    # via matplotlib
lxml==4.9.1
    # via
    #   -r requirements.in
    #   pyvcloud
    #   unittest-xml-reporting
matplotlib==3.6.1
    # via prometheus-api-client
monotonic==1.6
    # via gnocchiclient
msgpack==1.0.4
    # via oslo-serialization
munch==2.5.0
    # via openstacksdk
netaddr==0.8.0
    # via
    #   oslo-config
    #   oslo-utils
    #   python-neutronclient
netifaces==0.11.0
    # via
    #   openstacksdk
    #   oslo-utils
numpy==1.23.3
    # via
    #   contourpy
    #   matplotlib
    #   pandas
    #   prometheus-api-client
openstacksdk==0.101.0
    # via
    #   os-client-config
    #   osc-lib
os-client-config==2.1.0
    # via python-neutronclient
os-service-types==1.7.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==2.6.2
    # via python-neutronclient
oslo-config==9.0.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==5.0.0
    # via oslo-log
oslo-i18n==5.1.0
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-log
    #   oslo-utils
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-log==5.0.0
    # via python-neutronclient
oslo-serialization==5.0.0
    # via
    #   oslo-log
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==6.0.1
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==21.3
    # via
    #   matplotlib
    #   oslo-utils
    #   python-keystoneclient
    #   pyvcloud
pandas==1.5.0
    # via prometheus-api-client
pbr==5.10.0
    # via
    #   gnocchiclient
    #   keystoneauth1
    #   openstacksdk
    #   os-service-types
    #   osc-lib
    #   oslo-context
    #   oslo-i18n
    #   oslo-log
    #   oslo-serialization
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
    #   stevedore
pillow==9.2.0
    # via matplotlib
prettytable==0.7.2
    # via
    #   cliff
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-novaclient
prometheus-api-client==0.5.1
    # via -r requirements.in
prometheus-client==0.14.1
    # via -r requirements.in
pycparser==2.21
    # via cffi
pygments==2.13.0
    # via pyvcloud
pyinotify==0.9.6
    # via oslo-log
pyparsing==3.0.9
    # via
    #   matplotlib
    #   oslo-utils
    #   packaging
pyperclip==1.8.2
    # via cmd2
python-ceilometerclient==2.9.0
    # via -r requirements.in
python-cinderclient==8.3.0
    # via -r requirements.in
python-dateutil==2.8.2
    # via
    #   dateparser
    #   gnocchiclient
    #   matplotlib
    #   oslo-log
    #   pandas
    #   pyvcloud
python-keystoneclient==4.5.0
    # via
    #   -r requirements.in
    #   python-neutronclient
python-neutronclient==7.8.0
    # via -r requirements.in
python-novaclient==18.0.0
    # via -r requirements.in
pytz==2022.4
    # via
    #   dateparser
    #   oslo-serialization
    #   oslo-utils
    #   pandas
pytz-deprecation-shim==0.1.0.post0
    # via tzlocal
pyvcloud==23.0.4
    # via -r requirements.in
pyyaml==5.4.1
    # via
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo-config
    #   pyvcloud
regex==2022.3.2
    # via dateparser
requests==2.28.1
    # via
    #   -r requirements.in
    #   httmock
    #   keystoneauth1
    #   oslo-config
    #   prometheus-api-client
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   pyvcloud
requestsexceptions==1.4.0
    # via openstacksdk
rfc3986==2.0.0
    # via oslo-config
simplejson==3.17.6
    # via
    #   osc-lib
    #   python-cinderclient
    #   python-neutronclient
six==1.16.0
    # via
    #   -r requirements.in
    #   gnocchiclient
    #   keystoneauth1
    #   munch
    #   python-ceilometerclient
    #   python-dateutil
    #   python-keystoneclient
stevedore==4.0.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
tzdata==2022.4
    # via pytz-deprecation-shim
tzlocal==4.2
    # via dateparser
ujson==5.5.0
    # via gnocchiclient
unittest-xml-reporting==3.2.0
    # via pyvcloud
urllib3==1.26.12
    # via requests
vcd-api-schemas-type==10.3.0.dev72
    # via pyvcloud
wcwidth==0.2.5
    # via cmd2
wrapt==1.14.1
    # via debtcollector
zipp==3.9.0
    # via importlib-metadata
