#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile requirements.in
#
cachetools==4.2.2
    # via google-auth
certifi==2021.5.30
    # via requests
cffi==1.14.5
    # via google-crc32c
chardet==4.0.0
    # via requests
docker==5.0.0
    # via -r requirements.in
future==0.18.2
    # via -r requirements.in
gevent==21.1.2
    # via parallel-ssh
google-api-core[grpc]==1.29.0
    # via
    #   google-cloud-core
    #   google-cloud-pubsub
google-auth==1.30.1
    # via
    #   google-api-core
    #   google-cloud-core
    #   google-cloud-storage
google-cloud-core==1.6.0
    # via google-cloud-storage
google-cloud-pubsub==2.5.0
    # via -r requirements.in
google-cloud-storage==1.38.0
    # via -r requirements.in
google-crc32c==1.1.2
    # via google-resumable-media
google-resumable-media==1.3.0
    # via google-cloud-storage
googleapis-common-protos[grpc]==1.53.0
    # via
    #   google-api-core
    #   grpc-google-iam-v1
greenlet==1.1.0
    # via gevent
grpc-google-iam-v1==0.12.3
    # via google-cloud-pubsub
grpcio==1.38.0
    # via
    #   google-api-core
    #   googleapis-common-protos
    #   grpc-google-iam-v1
idna==2.10
    # via requests
libcst==0.3.19
    # via google-cloud-pubsub
mypy-extensions==0.4.3
    # via typing-inspect
packaging==20.9
    # via google-api-core
parallel-ssh==2.5.4
    # via -r requirements.in
proto-plus==1.18.1
    # via google-cloud-pubsub
protobuf==3.17.2
    # via
    #   google-api-core
    #   googleapis-common-protos
    #   proto-plus
pyasn1-modules==0.2.8
    # via google-auth
pyasn1==0.4.8
    # via
    #   pyasn1-modules
    #   rsa
pycparser==2.20
    # via cffi
pyparsing==2.4.7
    # via packaging
python-nmap==0.6.4
    # via -r requirements.in
pytz==2021.1
    # via google-api-core
pyyaml==5.4.1
    # via libcst
requests==2.25.1
    # via
    #   -r requirements.in
    #   docker
    #   google-api-core
    #   google-cloud-storage
rsa==4.7.2
    # via google-auth
six==1.15.0
    # via
    #   -r requirements.in
    #   google-api-core
    #   google-auth
    #   google-cloud-core
    #   google-resumable-media
    #   grpcio
    #   protobuf
ssh-python==0.9.0
    # via parallel-ssh
ssh2-python==0.26.0
    # via parallel-ssh
typing-extensions==3.10.0.0
    # via
    #   libcst
    #   typing-inspect
typing-inspect==0.7.1
    # via libcst
urllib3==1.26.5
    # via requests
websocket-client==1.0.1
    # via docker
wheel==0.36.2
    # via -r requirements.in
zope.event==4.5.0
    # via gevent
zope.interface==5.4.0
    # via gevent

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