# Requirements for the Federated Compute Python development environment. # # For compatibility with TensorFlow and TensorFlow Federated, most Python # dependencies should be managed by pip, not Bazel. # # * For packages that have a stable release, we use a version that is # compatible with that release (e.g. `~=x.y`). See # https://peps.python.org/pep-0440/#compatible-release for more information. # * For packages that do not have a stable release, we use a version that # matches a release that has been tested (e.g. `==x.y.z`). See # https://peps.python.org/pep-0440/#version-matching for more information. # # Note: There is bug in `pip` when multiple packages use the compatible release # operator `~=` to specify a version and one of those versions ends in `0`. See # https://github.com/pypa/pip/issues/9613 for more information. In this case, # use the equivalent clause `>=x.0,==x.*` instead of `~=x.0`. # # This assumes that the packages follow Semantic Versioning, see # https://semver.org/. If a package follows a different versioning scheme or # requires unique handling, we use a different version specifier and comment the # versioning scheme or reasoning. absl-py>=1.0,==1.* protobuf~=3.20 # The TensorFlow version should match what's specified in the WORKSPACE file for # C++ targets. tensorflow==2.12.0 tensorflow-federated~=0.53