#######################################################################################
# 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.11.12
    # via requests
charset-normalizer==3.4.4
    # via requests
debtcollector==3.0.0
    # via
    #   oslo-utils
    #   python-keystoneclient
idna==3.11
    # via requests
iso8601==2.1.0
    # via
    #   keystoneauth1
    #   oslo-utils
kafka-python==2.3.0
    # via -r requirements.in
keystoneauth1==5.12.0
    # via python-keystoneclient
msgpack==1.1.2
    # via oslo-serialization
netaddr==1.3.0
    # via
    #   oslo-config
    #   oslo-utils
os-service-types==1.8.2
    # via keystoneauth1
oslo-config==10.1.0
    # via python-keystoneclient
oslo-i18n==6.7.1
    # via
    #   oslo-config
    #   oslo-utils
    #   python-keystoneclient
oslo-serialization==5.8.0
    # via python-keystoneclient
oslo-utils==9.2.0
    # via
    #   oslo-serialization
    #   python-keystoneclient
packaging==25.0
    # via
    #   oslo-utils
    #   python-keystoneclient
pbr==7.0.3
    # via
    #   keystoneauth1
    #   os-service-types
    #   oslo-i18n
    #   oslo-utils
    #   python-keystoneclient
psutil==7.1.3
    # via oslo-utils
pyparsing==3.2.5
    # via oslo-utils
python-keystoneclient==5.7.0
    # via -r requirements.in
pyyaml==6.0.3
    # via
    #   -r requirements.in
    #   oslo-config
    #   oslo-utils
requests==2.32.5
    # via
    #   -r requirements.in
    #   keystoneauth1
    #   oslo-config
    #   python-keystoneclient
rfc3986==2.0.0
    # via oslo-config
stevedore==5.6.0
    # via
    #   keystoneauth1
    #   oslo-config
    #   python-keystoneclient
typing-extensions==4.15.0
    # via
    #   keystoneauth1
    #   os-service-types
tzdata==2025.2
    # via
    #   oslo-serialization
    #   oslo-utils
urllib3==2.6.1
    # via requests
wrapt==2.0.1
    # via debtcollector

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