#######################################################################################
# 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.
#######################################################################################
certifi==2025.8.3
    # via requests
charset-normalizer==3.4.2
    # via requests
debtcollector==3.0.0
    # via
    #   oslo-utils
    #   python-keystoneclient
idna==3.10
    # via requests
iso8601==2.1.0
    # via
    #   keystoneauth1
    #   oslo-utils
kafka-python==2.2.15
    # via -r requirements.in
keystoneauth1==5.11.1
    # via python-keystoneclient
msgpack==1.1.1
    # via oslo-serialization
netaddr==1.3.0
    # via
    #   oslo-config
    #   oslo-utils
os-service-types==1.8.0
    # via keystoneauth1
oslo-config==10.0.0
    # via python-keystoneclient
oslo-i18n==6.5.1
    # via
    #   oslo-config
    #   oslo-utils
    #   python-keystoneclient
oslo-serialization==5.7.0
    # via python-keystoneclient
oslo-utils==9.0.0
    # via
    #   oslo-serialization
    #   python-keystoneclient
packaging==25.0
    # via
    #   oslo-utils
    #   python-keystoneclient
pbr==6.1.1
    # via
    #   keystoneauth1
    #   os-service-types
    #   oslo-i18n
    #   oslo-utils
    #   python-keystoneclient
    #   stevedore
psutil==7.0.0
    # via oslo-utils
pyparsing==3.2.3
    # via oslo-utils
python-keystoneclient==5.6.0
    # via -r requirements.in
pyyaml==6.0.2
    # via
    #   -r requirements.in
    #   oslo-config
    #   oslo-utils
requests==2.32.4
    # via
    #   -r requirements.in
    #   keystoneauth1
    #   oslo-config
    #   python-keystoneclient
rfc3986==2.0.0
    # via oslo-config
stevedore==5.4.1
    # via
    #   keystoneauth1
    #   oslo-config
    #   python-keystoneclient
typing-extensions==4.14.1
    # via keystoneauth1
tzdata==2025.2
    # via
    #   oslo-serialization
    #   oslo-utils
urllib3==2.5.0
    # via requests
wrapt==1.17.2
    # via debtcollector

# The following packages are considered to be unsafe in a requirements file:
# setuptools
