#
# This file is autogenerated by pip-compile with Python 3.8
# by the following command:
#
#    pip-compile requirements.in
#
cachetools==5.5.2
    # via google-auth
certifi==2025.1.31
    # via requests
charset-normalizer==3.4.1
    # via requests
docker==7.1.0
    # via -r requirements.in
future==1.0.0
    # via -r requirements.in
gevent==24.2.1
    # via parallel-ssh
google-api-core[grpc]==1.26.0.dev0
    # via
    #   google-cloud-core
    #   google-cloud-pubsub
    #   google-cloud-storage
google-auth==2.38.0
    # via
    #   google-api-core
    #   google-cloud-storage
google-cloud-core==1.5.0
    # via google-cloud-storage
google-cloud-pubsub==1.4.0
    # via -r requirements.in
google-cloud-storage==1.16.0
    # via -r requirements.in
google-crc32c==1.6.0.dev2
    # via google-resumable-media
google-resumable-media==2.7.2
    # via google-cloud-storage
googleapis-common-protos[grpc]==1.68.0
    # via
    #   google-api-core
    #   grpc-google-iam-v1
greenlet==3.1.1
    # via gevent
grpc-google-iam-v1==0.12.4
    # via google-cloud-pubsub
grpcio==1.70.0
    # via
    #   google-api-core
    #   googleapis-common-protos
    #   grpc-google-iam-v1
idna==3.10
    # via requests
parallel-ssh==2.14.0
    # via -r requirements.in
protobuf==5.29.3
    # via
    #   google-api-core
    #   googleapis-common-protos
pyasn1==0.6.1
    # via
    #   pyasn1-modules
    #   rsa
pyasn1-modules==0.4.1
    # via google-auth
python-nmap==0.7.1
    # via -r requirements.in
pytz==2025.2
    # via google-api-core
requests==2.32.3
    # via
    #   -r requirements.in
    #   docker
    #   google-api-core
rsa==4.9
    # via google-auth
six==1.15.0
    # via
    #   -r requirements.in
    #   google-api-core
    #   google-cloud-core
ssh-python==1.1.1
    # via parallel-ssh
ssh2-python==1.1.2.post1
    # via parallel-ssh
urllib3==2.2.3
    # via
    #   docker
    #   requests
wheel==0.45.1
    # via -r requirements.in
zope-event==5.0
    # via gevent
zope-interface==7.2
    # via gevent

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