              self.output.info("The tool provides tips for installation\n"
                               "and installs required python packages")
          self.output.info("Setup in %s %s" % (self.os_version[0], self.os_version[1]))
          if not self.updater and not self.os_version[0] in ["Windows", "Linux", "Darwin"]:
              self.output.error("Your system %s is not supported!" % self.os_version[0])
              sys.exit(1)
  
      def check_python(self):
          """ Check python and virtual environment status """
          self.output.info("Installed Python: {0} {1}".format(self.py_version[0],
 
</s> remove         self.output.info("Setup in %s %s" % (self.os_version[0], self.os_version[1]))
 </s> add         self.output.info(f"Setup in {self.os_version[0]} {self.os_version[1]}") </s> remove         self.output.info("Installed Python: {0} {1}".format(self.py_version[0],
                                                            self.py_version[1]))
 </s> add         self.output.info(f"Installed Python: {self.py_version[0]} {self.py_version[1]}") </s> remove             "docker exec deepfakes-gpu python /srv/faceswap.py gui\n".format(
                path=os.path.dirname(os.path.realpath(__file__))))
 </s> add             "docker exec deepfakes-gpu python /srv/faceswap.py gui\n") </s> remove             hrs = "{0:02d}".format(hrs)
        mins = "{0:02d}".format((int(timestamp % 3600) // 60))
        secs = "{0:02d}".format((int(timestamp % 3600) % 60))
 </s> add             hrs = f"{hrs:02d}"
        mins = f"{(int(timestamp % 3600) // 60):02d}"
        secs = f"{(int(timestamp % 3600) % 60):02d}" </s> remove             print("Setting Faceswap backend from environment variable to "
                  "{}".format(fs_backend.upper()))
 </s> add             print(f"Setting Faceswap backend from environment variable to {fs_backend.upper()}")
            self.output.error(f"Your system {self.os_version[0]} is not supported!")
              self.output.info("The tool provides tips for installation\n"
                               "and installs required python packages")
          self.output.info("Setup in %s %s" % (self.os_version[0], self.os_version[1]))
          if not self.updater and not self.os_version[0] in ["Windows", "Linux", "Darwin"]:
            self.output.error(f"Your system {self.os_version[0]} is not supported!")
              sys.exit(1)
  
      def check_python(self):
          """ Check python and virtual environment status """
          self.output.info("Installed Python: {0} {1}".format(self.py_version[0],
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