#######################################################################################
# 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.
#######################################################################################
async-timeout==4.0.2
    # via retrying-async
bcrypt==4.0.1
    # via paramiko
cachetools==5.3.0
    # via google-auth
certifi==2023.5.7
    # via
    #   kubernetes
    #   requests
cffi==1.15.1
    # via
    #   cryptography
    #   pynacl
charset-normalizer==3.1.0
    # via
    #   -r requirements.in
    #   requests
cryptography==40.0.2
    # via paramiko
dnspython==2.3.0
    # via pymongo
google-auth==2.17.3
    # via
    #   -r requirements.in
    #   kubernetes
idna==3.4
    # via requests
juju==2.9.44.0
    # via -r requirements.in
jujubundlelib==0.5.7
    # via theblues
kubernetes==26.1.0
    # via
    #   -r requirements.in
    #   juju
macaroonbakery==1.3.1
    # via
    #   juju
    #   theblues
motor==3.1.2
    # via -r requirements.in
mypy-extensions==1.0.0
    # via typing-inspect
oauthlib==3.2.2
    # via requests-oauthlib
paramiko==2.12.0
    # via juju
protobuf==3.20.3
    # via macaroonbakery
pyasn1==0.5.0
    # via
    #   -r requirements.in
    #   juju
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.3.0
    # via google-auth
pycparser==2.21
    # via cffi
pymacaroons==0.13.0
    # via macaroonbakery
pymongo==4.3.3
    # via motor
pynacl==1.5.0
    # via
    #   macaroonbakery
    #   paramiko
    #   pymacaroons
pyrfc3339==1.1
    # via
    #   juju
    #   macaroonbakery
python-dateutil==2.8.2
    # via kubernetes
pytz==2023.3
    # via pyrfc3339
pyyaml==6.0.1
    # via
    #   -r requirements.in
    #   juju
    #   jujubundlelib
    #   kubernetes
requests==2.30.0
    # via
    #   kubernetes
    #   macaroonbakery
    #   requests-oauthlib
    #   theblues
requests-oauthlib==1.3.1
    # via kubernetes
retrying-async==2.0.0
    # via -r requirements.in
rsa==4.9
    # via google-auth
six==1.16.0
    # via
    #   google-auth
    #   kubernetes
    #   macaroonbakery
    #   paramiko
    #   pymacaroons
    #   python-dateutil
theblues==0.5.2
    # via juju
toposort==1.10
    # via juju
typing-extensions==4.5.0
    # via typing-inspect
typing-inspect==0.8.0
    # via juju
urllib3==2.0.2
    # via
    #   kubernetes
    #   requests
websocket-client==1.5.1
    # via kubernetes
websockets==11.0.3
    # via juju

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