#######################################################################################
# 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
async-timeout==3.0.1
    # via aiokafka
attrs==23.1.0
    # via cmd2
autopage==0.5.1
    # via cliff
backports-zoneinfo==0.2.1
    # via
    #   pytz-deprecation-shim
    #   tzlocal
certifi==2022.12.7
    # via requests
cffi==1.15.1
    # via cryptography
charset-normalizer==3.1.0
    # via requests
cliff==4.2.0
    # via
    #   gnocchiclient
    #   osc-lib
    #   python-neutronclient
cmd2==2.4.3
    # via cliff
contourpy==1.0.7
    # via matplotlib
cryptography==40.0.2
    # via openstacksdk
cycler==0.11.0
    # via matplotlib
dateparser==1.1.8
    # 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.39.3
    # via matplotlib
futurist==2.4.1
    # via gnocchiclient
gnocchiclient==7.0.8
    # 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==6.5.0
    # via cliff
importlib-resources==5.12.0
    # via matplotlib
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.1.2
    # via
    #   gnocchiclient
    #   openstacksdk
    #   osc-lib
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
kiwisolver==1.4.4
    # via matplotlib
lxml==4.9.2
    # via
    #   -r requirements.in
    #   pyvcloud
    #   unittest-xml-reporting
matplotlib==3.7.1
    # via prometheus-api-client
msgpack==1.0.5
    # via oslo-serialization
netaddr==0.8.0
    # via
    #   oslo-config
    #   oslo-utils
    #   python-neutronclient
netifaces==0.11.0
    # via
    #   openstacksdk
    #   oslo-utils
numpy==1.24.2
    # via
    #   contourpy
    #   matplotlib
    #   pandas
    #   prometheus-api-client
openstacksdk==1.0.1
    # 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.7.0
    # via python-neutronclient
oslo-config==9.1.1
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==5.1.1
    # via oslo-log
oslo-i18n==6.0.0
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-log
    #   oslo-utils
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-log==5.2.0
    # via python-neutronclient
oslo-serialization==5.1.1
    # via
    #   oslo-log
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==6.1.0
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==23.1
    # via
    #   aiokafka
    #   matplotlib
    #   oslo-utils
    #   python-keystoneclient
    #   pyvcloud
pandas==2.0.0
    # via prometheus-api-client
pbr==5.11.1
    # via
    #   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.5.0
    # via matplotlib
prettytable==0.7.2
    # via
    #   cliff
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-novaclient
prometheus-api-client==0.5.3
    # via -r requirements.in
prometheus-client==0.16.0
    # via -r requirements.in
pycparser==2.21
    # via cffi
pygments==2.15.1
    # via pyvcloud
pyinotify==0.9.6
    # via oslo-log
pyparsing==3.0.9
    # via
    #   matplotlib
    #   oslo-utils
pyperclip==1.8.2
    # via cmd2
python-ceilometerclient==2.9.0
    # via -r requirements.in
python-cinderclient==9.3.0
    # via -r requirements.in
python-dateutil==2.8.2
    # via
    #   dateparser
    #   gnocchiclient
    #   matplotlib
    #   oslo-log
    #   pandas
    #   pyvcloud
python-keystoneclient==5.1.0
    # via
    #   -r requirements.in
    #   python-neutronclient
python-neutronclient==9.0.0
    # via -r requirements.in
python-novaclient==18.3.0
    # via -r requirements.in
pytz==2023.3
    # 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==2023.3.23
    # via dateparser
requests==2.28.2
    # 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.19.1
    # via
    #   osc-lib
    #   python-neutronclient
six==1.16.0
    # via
    #   -r requirements.in
    #   gnocchiclient
    #   keystoneauth1
    #   python-ceilometerclient
    #   python-dateutil
    #   python-keystoneclient
stevedore==5.0.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
tzdata==2023.3
    # via
    #   pandas
    #   pytz-deprecation-shim
tzlocal==4.3
    # via dateparser
ujson==5.7.0
    # via gnocchiclient
unittest-xml-reporting==3.2.0
    # via pyvcloud
urllib3==1.26.15
    # via requests
vcd-api-schemas-type==10.3.0.dev72
    # via pyvcloud
wcwidth==0.2.6
    # via cmd2
wrapt==1.15.0
    # via debtcollector
zipp==3.15.0
    # via
    #   importlib-metadata
    #   importlib-resources
