#######################################################################################
# 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.8.1
    # via -r requirements.in
appdirs==1.4.4
    # via openstacksdk
async-timeout==4.0.3
    # via aiokafka
attrs==23.1.0
    # via cmd2
autopage==0.5.1
    # via cliff
certifi==2023.7.22
    # via
    #   -r requirements.in
    #   requests
cffi==1.16.0
    # via
    #   -r requirements.in
    #   cryptography
charset-normalizer==3.3.0
    # via
    #   -r requirements.in
    #   requests
cliff==4.3.0
    # via
    #   gnocchiclient
    #   osc-lib
    #   python-neutronclient
cmd2==2.4.3
    # via cliff
contourpy==1.1.1
    # via matplotlib
cryptography==41.0.4
    # via
    #   -r requirements.in
    #   openstacksdk
cycler==0.12.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.2.2
    # via openstacksdk
fonttools==4.43.0
    # 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.8.0
    # via cliff
iso8601==2.1.0
    # via
    #   gnocchiclient
    #   keystoneauth1
    #   openstacksdk
    #   oslo-utils
    #   python-ceilometerclient
    #   python-neutronclient
    #   python-novaclient
jmespath==1.0.1
    # via openstacksdk
jsonpatch==1.33
    # via openstacksdk
jsonpointer==2.4
    # via jsonpatch
kafka-python==2.0.2
    # via aiokafka
keystoneauth1==5.3.0
    # via
    #   gnocchiclient
    #   openstacksdk
    #   osc-lib
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
kiwisolver==1.4.5
    # via matplotlib
lxml==4.9.3
    # via
    #   -r requirements.in
    #   pyvcloud
    #   unittest-xml-reporting
matplotlib==3.8.0
    # via prometheus-api-client
msgpack==1.0.7
    # via oslo-serialization
netaddr==0.9.0
    # via
    #   oslo-config
    #   oslo-utils
    #   python-neutronclient
netifaces==0.11.0
    # via
    #   openstacksdk
    #   oslo-utils
numpy==1.26.0
    # via
    #   contourpy
    #   matplotlib
    #   pandas
    #   prometheus-api-client
openstacksdk==1.5.0
    # via
    #   os-client-config
    #   osc-lib
    #   python-neutronclient
os-client-config==2.1.0
    # via python-neutronclient
os-service-types==1.7.0
    # via
    #   keystoneauth1
    #   openstacksdk
osc-lib==2.8.1
    # via python-neutronclient
oslo-config==9.2.0
    # via
    #   oslo-log
    #   python-keystoneclient
oslo-context==5.2.0
    # via oslo-log
oslo-i18n==6.1.0
    # via
    #   osc-lib
    #   oslo-config
    #   oslo-log
    #   oslo-utils
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-log==5.3.0
    # via python-neutronclient
oslo-serialization==5.2.0
    # via
    #   oslo-log
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
oslo-utils==6.2.1
    # via
    #   osc-lib
    #   oslo-log
    #   oslo-serialization
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-neutronclient
    #   python-novaclient
packaging==23.1
    # via
    #   -r requirements.in
    #   aiokafka
    #   matplotlib
    #   oslo-utils
    #   python-keystoneclient
    #   pyvcloud
pandas==2.1.1
    # 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==10.0.1
    # via matplotlib
prettytable==0.7.2
    # via
    #   cliff
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-novaclient
prometheus-api-client==0.5.4
    # via -r requirements.in
prometheus-client==0.17.1
    # via -r requirements.in
pycparser==2.21
    # via cffi
pygments==2.16.1
    # via pyvcloud
pyinotify==0.9.6
    # via oslo-log
pyparsing==3.1.1
    # via
    #   matplotlib
    #   oslo-utils
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==5.2.0
    # via
    #   -r requirements.in
    #   python-neutronclient
python-neutronclient==11.0.0
    # via -r requirements.in
python-novaclient==18.4.0
    # via -r requirements.in
pytz==2023.3.post1
    # via
    #   dateparser
    #   oslo-serialization
    #   oslo-utils
    #   pandas
pyvcloud==23.0.4
    # via -r requirements.in
pyyaml==6.0.1
    # via
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo-config
    #   pyvcloud
regex==2023.8.8
    # via dateparser
requests==2.31.0
    # 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-cinderclient
    #   python-neutronclient
six==1.16.0
    # via
    #   -r requirements.in
    #   gnocchiclient
    #   python-ceilometerclient
    #   python-dateutil
    #   python-keystoneclient
stevedore==5.1.0
    # via
    #   cliff
    #   dogpile-cache
    #   keystoneauth1
    #   osc-lib
    #   oslo-config
    #   python-ceilometerclient
    #   python-cinderclient
    #   python-keystoneclient
    #   python-novaclient
typing-extensions==4.8.0
    # via dogpile-cache
tzdata==2023.3
    # via
    #   oslo-serialization
    #   oslo-utils
    #   pandas
tzlocal==5.0.1
    # via dateparser
ujson==5.8.0
    # via gnocchiclient
unittest-xml-reporting==3.2.0
    # via pyvcloud
urllib3==2.0.6
    # via requests
vcd-api-schemas-type==10.3.0.dev72
    # via pyvcloud
wcwidth==0.2.8
    # via cmd2
wrapt==1.15.0
    # via debtcollector
zipp==3.17.0
    # via importlib-metadata
