#######################################################################################
# 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==2026.2.25
    # 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.13.1
    # 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.3.0
    # via python-keystoneclient
oslo-i18n==6.7.2
    # via
    #   oslo-config
    #   oslo-utils
    #   python-keystoneclient
oslo-serialization==5.9.1
    # via python-keystoneclient
oslo-utils==10.0.0
    # via
    #   oslo-serialization
    #   python-keystoneclient
packaging==26.0
    # via
    #   oslo-utils
    #   python-keystoneclient
pbr==7.0.3
    # via
    #   keystoneauth1
    #   os-service-types
    #   oslo-i18n
    #   oslo-utils
    #   python-keystoneclient
psutil==7.2.2
    # via oslo-utils
pyparsing==3.3.2
    # 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.7.0
    # via
    #   keystoneauth1
    #   oslo-config
    #   python-keystoneclient
typing-extensions==4.15.0
    # via
    #   keystoneauth1
    #   os-service-types
urllib3==2.6.3
    # via requests
wrapt==2.1.1
    # via debtcollector

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