# Python 2 packages needed for dev_appserver.py. During deployment, these
# packages are built into App Engine and included by declaring them in app.yaml.
# https://cloud.google.com/appengine/docs/standard/python/tools/using-libraries-python-27#local_development
# All packages must be at least 3 weeks old, crbug.com/1117193#c5
# For hash-checking mode, all nested dependencies must be included.

# For binary dependencies, we'll have to provide one for each platform. We're targeting:
# * Python: cp27m, but prefer cp27mu (CPython 2.7)
# * OS: macosx_10_* and manylinux*
# * Architecture: x86_64

mysqlclient==1.4.6 --hash=sha256:f3fdaa9a38752a3b214a6fe79d7cae3653731a53e577821f9187e67cbecb2e16

# Required by dev_appserver.py
enum34==1.1.6 --hash=sha256:6bd0f6ad48ec2aa117d3d141940d484deccda84d4fcd884f5c3d93c23ecd8c79

# Required by gae.py and by dev_appserver.py
six==1.15.0 --hash=sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced

# Required by grpc-google-iam-v1 <-- google-cloud-tasks
# first sha is for cp27m-macosx_10_9_x86
# second sha is for cp27mu-manylinux2010_x86
# third sha is for cp27m-manylinux2010_x86
grpcio==1.31.0 --hash=sha256:e8c3264b0fd728aadf3f0324471843f65bd3b38872bdab2a477e31ffb685dd5b \
               --hash=sha256:92e54ab65e782f227e751c7555918afaba8d1229601687e89b80c2b65d2f6642 \
               --hash=sha256:58d7121f48cb94535a4cedcce32921d0d0a78563c7372a143dedeec196d1c637 \
               --hash=sha256:5043440c45c0a031f387e7f48527541c65d672005fb24cf18ef6857483557d39

# Required by google-cloud-tasks
# first sha is for cp27m-macosx_10_9_x86_64
# second sha is for cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64
protobuf==3.17.3 --hash=sha256:ab6bb0e270c6c58e7ff4345b3a803cc59dbee19ddf77a4719c5b635f1d547aa8 \
                 --hash=sha256:13ee7be3c2d9a5d2b42a1030976f760f28755fcf5863c55b1460fd205e6cd637
