# Specify the Python packages available as dependencies to targets in Bazel.
#
# When modifying this list, always run
# the //third_party:python_requirements.update target:
#
#     bazel run //third_party:python_requirements.update
#
# to compile (using pip-compile) this list of direct dependencies into a pinned
# requirements file---a complete list of direct and transitive dependencies,
# pinned by version and cryptographic hash. The pinned requirements file is
# used in @rules_python's pip_parse() in the WORKSPACE file to create the
# external repositories available as dependencies to py_binary() and
# py_library() targets.
#
# To upgrade dependencies to their latest version, run the update target with
# the option --upgrade:
#
#   bazel run //third_party:python_requirements.update -- --upgrade
#
# Without the --upgrade option, the underlying pip-compile only adds or removes
# dependencies without upgrading them to the latest versions available in PyPI.
#
# Both this input file and the pinned requirements file should be committed to
# git. Avoid committing changes that break other developers by using an
# environment that meets the project's recommendations. Dependency resolution
# is sensitive to the Python environment (interpreter version, etc.) in which
# it is run.

tensorflow
twine
numpy
mako
pillow
yapf
protobuf
