          try:
              if verbose:
                  run(condaexe, check=True, shell=shell)
              else:
                  with open(os.devnull, "w") as devnull:
                      run(condaexe, stdout=devnull, stderr=devnull, check=True, shell=shell)
          except CalledProcessError:
              if not conda_only:
                  self.output.info(f"{package} not available in Conda. Installing with pip")
              else:
 
</s> remove         self.output.info("Installing {}".format(package.replace("\"", "")))
 </s> add         clean_pkg = package.replace("\"", "")
        self.output.info(f"Installing {clean_pkg}") </s> remove                 with open(self._config_file, "r") as cnf:
 </s> add                 with open(self._config_file, "r", encoding="utf8") as cnf: </s> remove         with open(self._config_file, "w") as cnf:
 </s> add         with open(self._config_file, "w", encoding="utf8") as cnf: </s> remove             zip_file = zipfile.ZipFile(self._model_zip_path, "r")
            self._write_model(zip_file)
 </s> add             with zipfile.ZipFile(self._model_zip_path, "r") as zip_file:
                self._write_model(zip_file) </s> remove         with open(config_file, "w") as cnf:
 </s> add         with open(config_file, "w", encoding="utf8") as cnf:
                with open(os.devnull, "w", encoding="utf8") as devnull:
          try:
              if verbose:
                  run(condaexe, check=True, shell=shell)
              else:
                with open(os.devnull, "w", encoding="utf8") as devnull:
                      run(condaexe, stdout=devnull, stderr=devnull, check=True, shell=shell)
          except CalledProcessError:
              if not conda_only:
                  self.output.info(f"{package} not available in Conda. Installing with pip")
              else:
keep keep keep keep replace keep keep keep keep keep
 Update code to support Tensorflow versions up to 2.8 (#1213)

* Update maximum tf version in setup + requirements

* - bump max version of tf version in launcher
- standardise tf version check

* update keras get_custom_objects  for tf>2.6

* bugfix: force black text in GUI file dialogs (linux)

* dssim loss - Move to stock tf.ssim function

* Update optimizer imports for compatibility

* fix logging for tf2.8

* Fix GUI graphing for TF2.8

* update tests

* bump requirements.txt versions

* Remove limit on nvidia-ml-py

* Graphing bugfixes
  - Prevent live graph from displaying if data not yet available

* bugfix: Live graph. Collect loss labels correctly

* fix: live graph - swallow inconsistent loss errors

* Bugfix: Prevent live graph from clearing during training

* Fix graphing for AMD 
setup.py