          requirements = list()
          git_requirements = list()
          for req_file in req_files:
              requirements_file = os.path.join(pypath, req_file)
              with open(requirements_file) as req:
                  for package in req.readlines():
                      package = package.strip()
                      # parse_requirements can't handle git dependencies, so extract and then
                      # manually add to final list
                      if package and package.startswith("git+"):
 
</s> remove         requirements = list()
        git_requirements = list()
 </s> add         requirements = []
        git_requirements = [] </s> remove         self.output.info("Installing {}".format(package.replace("\"", "")))
 </s> add         clean_pkg = package.replace("\"", "")
        self.output.info(f"Installing {clean_pkg}") </s> remove         loss_keys = {sess_id: list(logs.keys())
                     for sess_id, logs in self._tb_logs.get_loss(session_id=session_id).items()}
 </s> add         if get_backend() == "amd":
            # We can't log the graph in Tensorboard logs for AMD so need to obtain from state file
            loss_keys = {int(sess_id): [name for name in session["loss_names"] if name != "total"]
                         for sess_id, session in self._state["sessions"].items()}
        else:
            loss_keys = {sess_id: list(logs.keys())
                         for sess_id, logs
                         in self._tb_logs.get_loss(session_id=session_id).items()}
 </s> remove             tf_ver = "tensorflow-gpu{}".format(tf_ver)
 </s> add             tf_ver = f"tensorflow-gpu{tf_ver}" </s> remove         self.required_packages = list()
        self.missing_packages = list()
        self.conda_missing_packages = list()
 </s> add         self.required_packages = []
        self.missing_packages = []
        self.conda_missing_packages = []
            with open(requirements_file, encoding="utf8") as req:
          requirements = list()
          git_requirements = list()
          for req_file in req_files:
              requirements_file = os.path.join(pypath, req_file)
            with open(requirements_file, encoding="utf8") as req:
                  for package in req.readlines():
                      package = package.strip()
                      # parse_requirements can't handle git dependencies, so extract and then
                      # manually add to final list
                      if package and package.startswith("git+"):
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