          if tf_ver:
              # Remove the version of tensorflow in requirements file and add the correct version
              # that corresponds to the installed Cuda/cuDNN versions
              self._required_packages = [pkg for pkg in self._required_packages
                                         if not pkg[0].startswith("tensorflow-gpu")]
              tf_ver = f"tensorflow-gpu{tf_ver}"
  
              tf_ver = f"tensorflow-gpu{tf_ver}"
              self._required_packages.append(("tensorflow-gpu",
                                             next(parse_requirements(tf_ver)).specs))
              return
  
          logger.warning(
              "The minimum Tensorflow requirement is 2.8 \n"
              "Tensorflow currently has no official prebuild for your CUDA, cuDNN combination.\n"
 
</s> remove             "The minimum Tensorflow requirement is 2.8 \n"
 </s> add             "The minimum Tensorflow requirement is 2.10 \n" </s> remove             "tensorflow-gpu.\r\n"
 </s> add             "tensorflow.\r\n" </s> remove             cuda_req = val[0]
            cudnn_req = val[1].split(".")
            if cuda_req == self._env.cuda_version and (cudnn_req[0] == cudnn_inst[0] and
                                                       cudnn_req[1] <= cudnn_inst[1]):
 </s> add             cuda_req = next(parse_requirements(f"cuda{val[0]}")).specs
            cudnn_req = next(parse_requirements(f"cudnn{val[1]}")).specs
            if (self._validate_spec(cuda_req, cuda_inst)
                    and self._validate_spec(cudnn_req, cudnn_inst)): </s> remove             if self._env.is_conda:
                if pkg.startswith("tensorflow-gpu"):
                    # From TF 2.4 onwards, Anaconda Tensorflow becomes a mess. The version of 2.5
                    # installed by Anaconda is compiled against an incorrect numpy version which
                    # breaks Tensorflow. Coupled with this the versions of cudatoolkit and cudnn
                    # available in the default Anaconda channel are not compatible with the
                    # official PyPi versions of Tensorflow. With this in mind we will pull in the
                    # required Cuda/cuDNN from conda-forge, and install Tensorflow with pip
                    # TODO Revert to Conda if they get their act together

                    # Rewrite tensorflow requirement to versions from highest available cuda/cudnn
                    highest_cuda = sorted(_TENSORFLOW_REQUIREMENTS.values())[-1]
                    compat_tf = next(k for k, v in _TENSORFLOW_REQUIREMENTS.items()
                                     if v == highest_cuda)
                    pkg = f"tensorflow-gpu{compat_tf}"
                    conda_only = True

 </s> add             if self._env.is_conda and not pip_only: </s> remove         backend = get_backend()
 </s> add 
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
          if tf_ver:
              # Remove the version of tensorflow in requirements file and add the correct version
              # that corresponds to the installed Cuda/cuDNN versions
              self._required_packages = [pkg for pkg in self._required_packages
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
                                       if pkg[0] != "tensorflow"]
            tf_ver = f"tensorflow{tf_ver}"
            self._required_packages.append(("tensorflow", next(parse_requirements(tf_ver)).specs))
              return
  
          logger.warning(
              "The minimum Tensorflow requirement is 2.8 \n"
              "Tensorflow currently has no official prebuild for your CUDA, cuDNN combination.\n"
keep keep keep keep replace replace replace replace replace replace keep keep keep keep keep
 Rebase code (#1326)

* Remove tensorflow_probability requirement

* setup.py - fix progress bars

* requirements.txt: Remove pre python 3.9 packages

* update apple requirements.txt

* update INSTALL.md

* Remove python<3.9 code

* setup.py - fix Windows Installer

* typing: python3.9 compliant

* Update pytest and readthedocs python versions

* typing fixes

* Python Version updates
  - Reduce max version to 3.10
  - Default to 3.10 in installers
  - Remove incompatible 3.11 tests

* Update dependencies

* Downgrade imageio dep for Windows

* typing: merge optional unions and fixes

* Updates
  - min python version 3.10
  - typing to python 3.10 spec
  - remove pre-tf2.10 code
  - Add conda tests

* train: re-enable optimizer saving

* Update dockerfiles

* Update setup.py
  - Apple Conda deps to setup.py
  - Better Cuda + dependency handling

* bugfix: Patch logging to prevent Autograph errors

* Update dockerfiles

* Setup.py - Setup.py - stdout to utf-8

* Add more OSes to github Actions

* suppress mac-os end to end test 
setup.py