• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Requirements for the Federated Compute Python development environment.
2#
3# For compatibility with TensorFlow and TensorFlow Federated, most Python
4# dependencies should be managed by pip, not Bazel.
5#
6# *   For packages that have a stable release, we use a version that is
7#     compatible with that release (e.g. `~=x.y`). See
8#     https://peps.python.org/pep-0440/#compatible-release for more information.
9# *   For packages that do not have a stable release, we use a version that
10#     matches a release that has been tested (e.g. `==x.y.z`). See
11#     https://peps.python.org/pep-0440/#version-matching for more information.
12#
13# Note: There is bug in `pip` when multiple packages use the compatible release
14# operator `~=` to specify a version and one of those versions ends in `0`. See
15# https://github.com/pypa/pip/issues/9613 for more information. In this case,
16# use the equivalent clause `>=x.0,==x.*` instead of `~=x.0`.
17#
18# This assumes that the packages follow Semantic Versioning, see
19# https://semver.org/. If a package follows a different versioning scheme or
20# requires unique handling, we use a different version specifier and comment the
21# versioning scheme or reasoning.
22
23absl-py>=1.0,==1.*
24protobuf~=3.20
25# The TensorFlow version should match what's specified in the WORKSPACE file for
26# C++ targets.
27tensorflow==2.12.0
28tensorflow-federated~=0.53
29