#######################################################################################
# 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.0
    # via -r requirements.in
appdirs==1.4.4
    # via openstacksdk
async-timeout==4.0.2
    # via aiokafka
attrs==23.1.0
    # via cmd2
autopage==0.5.1
    # via cliff
certifi==2023.5.7
    # via
    #   -r requirements.in
    #   requests
cffi==1.15.1
    # via
    #   -r requirements.in
    #   cryptography
charset-normalizer==3.1.0
    # via
    #   -r requirements.in
    #   requests
cliff==4.3.0
    # via
    #   gnocchiclient
    #   osc-lib
    #   python-neutronclient
cmd2==2.4.3
    # via cliff
contourpy==1.0.7
    # via matplotlib
cryptography==40.0.2
    # via
    #   -r requirements.in
    #   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.2.0
    # via openstacksdk
fonttools==4.39.4
    # 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.6.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.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.3
    # via
    #   contourpy
    #   matplotlib
    #   pandas
    #   prometheus-api-client
openstacksdk==1.1.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.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.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==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==8.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==10.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==6.0.1
    # via
    #   -r requirements.in
    #   cliff
    #   openstacksdk
    #   oslo-config
    #   pyvcloud
regex==2023.5.5
    # via dateparser
requests==2.30.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
    #   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
tzlocal==4.3
    # via dateparser
ujson==5.7.0
    # via gnocchiclient
unittest-xml-reporting==3.2.0
    # via pyvcloud
urllib3==2.0.2
    # 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
