#######################################################################################
# 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==3.0.1
    # via
    #   -r requirements.in
    #   retrying-async
bcrypt==3.2.0
    # via paramiko
cachetools==4.2.4
    # via google-auth
certifi==2021.10.8
    # via
    #   kubernetes
    #   requests
cffi==1.15.0
    # via
    #   bcrypt
    #   cryptography
    #   pynacl
charset-normalizer==2.0.10
    # via requests
cryptography==36.0.1
    # via paramiko
google-auth==2.3.3
    # via kubernetes
idna==3.3
    # via requests
juju==2.9.4
    # via -r requirements.in
jujubundlelib==0.5.7
    # via theblues
kubernetes==21.7.0
    # via
    #   -r requirements.in
    #   juju
macaroonbakery==1.3.1
    # via
    #   juju
    #   theblues
motor==1.3.1
    # via -r requirements.in
mypy-extensions==0.4.3
    # via typing-inspect
oauthlib==3.1.1
    # via requests-oauthlib
paramiko==2.9.2
    # via juju
protobuf==3.19.3
    # via macaroonbakery
pyasn1==0.4.8
    # via
    #   -r requirements.in
    #   juju
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.2.8
    # via google-auth
pycparser==2.21
    # via cffi
pymacaroons==0.13.0
    # via macaroonbakery
pymongo==3.12.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==2021.3
    # via pyrfc3339
pyyaml==5.4.1
    # via
    #   -r requirements.in
    #   juju
    #   jujubundlelib
    #   kubernetes
requests==2.27.1
    # via
    #   kubernetes
    #   macaroonbakery
    #   requests-oauthlib
    #   theblues
requests-oauthlib==1.3.0
    # via kubernetes
retrying-async==1.2.0
    # via -r requirements.in
rsa==4.8
    # via google-auth
six==1.16.0
    # via
    #   bcrypt
    #   google-auth
    #   kubernetes
    #   macaroonbakery
    #   pymacaroons
    #   python-dateutil
theblues==0.5.2
    # via juju
toposort==1.7
    # via juju
typing-extensions==4.0.1
    # via typing-inspect
typing-inspect==0.7.1
    # via juju
urllib3==1.26.8
    # via
    #   kubernetes
    #   requests
websocket-client==1.2.3
    # via kubernetes
websockets==7.0
    # via juju

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