#######################################################################################
# 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.
#######################################################################################
attrs==23.1.0
    # via cmd2
autopage==0.5.1
    # via cliff
azure-common==1.1.28
    # via
    #   -r requirements.in
    #   azure-mgmt-compute
    #   azure-mgmt-monitor
azure-core==1.26.4
    # via
    #   azure-identity
    #   azure-mgmt-core
    #   msrest
azure-identity==1.13.0
    # via -r requirements.in
azure-mgmt-compute==29.1.0
    # via -r requirements.in
azure-mgmt-core==1.4.0
    # via
    #   azure-mgmt-compute
    #   azure-mgmt-monitor
azure-mgmt-monitor==6.0.1
    # via -r requirements.in
cachetools==5.3.0
    # via google-auth
certifi==2023.5.7
    # via
    #   msrest
    #   requests
cffi==1.15.1
    # via cryptography
charset-normalizer==3.1.0
    # via requests
cliff==4.3.0
    # via gnocchiclient
cmd2==2.4.3
    # via cliff
contourpy==1.0.7
    # via matplotlib
cryptography==40.0.2
    # via
    #   azure-identity
    #   msal
    #   pyjwt
cycler==0.11.0
    # via matplotlib
dateparser==1.1.8
    # via prometheus-api-client
debtcollector==2.5.0
    # via
    #   gnocchiclient
    #   oslo-config
    #   oslo-utils
    #   python-keystoneclient
fonttools==4.39.4
    # via matplotlib
futurist==2.4.1
    # via gnocchiclient
gnocchiclient==7.0.8
    # via -r requirements.in
google-api-core==2.11.0
    # via google-api-python-client
google-api-python-client==2.86.0
    # via -r requirements.in
google-auth==2.18.1
    # via
    #   -r requirements.in
    #   google-api-core
    #   google-api-python-client
    #   google-auth-httplib2
google-auth-httplib2==0.1.0
    # via google-api-python-client
googleapis-common-protos==1.59.0
    # via google-api-core
httmock==1.4.0
    # via prometheus-api-client
httplib2==0.22.0
    # via
    #   google-api-python-client
    #   google-auth-httplib2
idna==3.4
    # via requests
importlib-metadata==6.6.0
    # via cliff
iso8601==1.1.0
    # via
    #   gnocchiclient
    #   keystoneauth1
    #   oslo-utils
    #   python-ceilometerclient
    #   python-novaclient
isodate==0.6.1
    # via
    #   azure-mgmt-monitor
    #   msrest
keystoneauth1==5.2.0
    # via
    #   gnocchiclient
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
kiwisolver==1.4.4
    # via matplotlib
matplotlib==3.7.1
    # via prometheus-api-client
msal==1.22.0
    # via
    #   azure-identity
    #   msal-extensions
msal-extensions==1.0.0
    # via azure-identity
msgpack==1.0.5
    # via oslo-serialization
msrest==0.7.1
    # via azure-mgmt-compute
netaddr==0.8.0
    # via
    #   oslo-config
    #   oslo-utils
netifaces==0.11.0
    # via oslo-utils
numpy==1.24.3
    # via
    #   contourpy
    #   matplotlib
    #   pandas
    #   prometheus-api-client
oauthlib==3.2.2
    # via requests-oauthlib
os-service-types==1.7.0
    # via keystoneauth1
oslo-config==9.1.1
    # via python-keystoneclient
oslo-i18n==6.0.0
    # via
    #   oslo-config
    #   oslo-utils
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
oslo-serialization==5.1.1
    # via
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
oslo-utils==6.1.0
    # via
    #   oslo-serialization
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
packaging==23.1
    # via
    #   matplotlib
    #   oslo-utils
    #   python-keystoneclient
pandas==2.0.1
    # via prometheus-api-client
pbr==5.11.1
    # via
    #   keystoneauth1
    #   os-service-types
    #   oslo-i18n
    #   oslo-serialization
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
    #   stevedore
pillow==9.5.0
    # via matplotlib
portalocker==2.7.0
    # via msal-extensions
prettytable==0.7.2
    # via
    #   cliff
    #   python-ceilometerclient
    #   python-novaclient
prometheus-api-client==0.5.3
    # via -r requirements.in
prometheus-client==0.16.0
    # via -r requirements.in
protobuf==3.20.3
    # via
    #   google-api-core
    #   googleapis-common-protos
pyasn1==0.5.0
    # via
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.3.0
    # via google-auth
pycparser==2.21
    # via cffi
pyjwt[crypto]==2.7.0
    # via msal
pyparsing==3.0.9
    # via
    #   httplib2
    #   matplotlib
    #   oslo-utils
pyperclip==1.8.2
    # via cmd2
python-ceilometerclient==2.9.0
    # via -r requirements.in
python-dateutil==2.8.2
    # via
    #   dateparser
    #   gnocchiclient
    #   matplotlib
    #   pandas
python-keystoneclient==5.1.0
    # via -r requirements.in
python-novaclient==18.3.0
    # via -r requirements.in
pytz==2023.3
    # via
    #   dateparser
    #   oslo-serialization
    #   oslo-utils
    #   pandas
pyyaml==6.0.1
    # via
    #   -r requirements.in
    #   cliff
    #   oslo-config
regex==2023.5.5
    # via dateparser
requests==2.31.0
    # via
    #   azure-core
    #   google-api-core
    #   httmock
    #   keystoneauth1
    #   msal
    #   msrest
    #   oslo-config
    #   prometheus-api-client
    #   python-ceilometerclient
    #   python-keystoneclient
    #   requests-oauthlib
requests-oauthlib==1.3.1
    # via msrest
rfc3986==2.0.0
    # via oslo-config
rsa==4.9
    # via google-auth
six==1.16.0
    # via
    #   azure-core
    #   azure-identity
    #   gnocchiclient
    #   google-auth
    #   google-auth-httplib2
    #   isodate
    #   python-ceilometerclient
    #   python-dateutil
    #   python-keystoneclient
stevedore==5.1.0
    # via
    #   cliff
    #   keystoneauth1
    #   oslo-config
    #   python-ceilometerclient
    #   python-keystoneclient
    #   python-novaclient
typing-extensions==4.5.0
    # via azure-core
tzdata==2023.3
    # via pandas
tzlocal==5.0.1
    # via dateparser
ujson==5.7.0
    # via gnocchiclient
uritemplate==4.1.1
    # via google-api-python-client
urllib3==1.26.16
    # via
    #   google-auth
    #   requests
wcwidth==0.2.6
    # via cmd2
wrapt==1.15.0
    # via debtcollector
zipp==3.15.0
    # via importlib-metadata
