          """ Ask Continue with Install """
          inp = input("Please ensure your System Dependencies are met. Continue? [y/N] ")
          if inp in ("", "N", "n"):
              self.output.error("Please install system dependencies to continue")
              exit(1)
  
      def check_missing_dep(self):
          """ Check for missing dependencies """
          for pkg in self.env.required_packages:
              pkg = self.check_os_requirements(pkg)
 
</s> remove         for pkg in self.env.required_packages:
            pkg = self.check_os_requirements(pkg)
            if pkg is None:
                continue
            key = pkg.split("==")[0]
 </s> add         for key, specs in self.env.required_packages: </s> remove             else:
                if len(pkg.split("==")) > 1:
                    if pkg.split("==")[1] != self.env.installed_packages.get(key):
                        self.env.missing_packages.append(pkg)
                        continue

    @staticmethod
    def check_os_requirements(package):
        """ Check that the required package is required for this OS """
        if ";" not in package and "sys_platform" not in package:
            return package
        package = "".join(package.split())
        pkg, tags = package.split(";")
        tags = tags.split("==")
        sys_platform = tags[tags.index("sys_platform") + 1].replace('"', "").replace("'", "")
        if sys_platform == sys.platform:
            return pkg
        return None
 </s> add             installed_vers = self.env.installed_packages.get(key, "")
            if specs and not all(self._operators[spec[0]](installed_vers, spec[1])
                                 for spec in specs):
                self.env.missing_packages.append((key, specs)) </s> remove         for pkg in self.env.missing_packages:
 </s> add         for pkg, version in self.env.missing_packages:
            if version:
                pkg = "{}{}".format(pkg, ",".join("".join(spec) for spec in version)) </s> remove             else:
                if len(pkg[0].split("==")) > 1:
                    if pkg[0].split("==")[1] != self.env.installed_conda_packages.get(key):
                        self.env.conda_missing_packages.append(pkg)
                        continue
 </s> add             if len(pkg[0].split("==")) > 1:
                if pkg[0].split("==")[1] != self.env.installed_conda_packages.get(key):
                    self.env.conda_missing_packages.append(pkg)
                    continue
            sys.exit(1)
          """ Ask Continue with Install """
          inp = input("Please ensure your System Dependencies are met. Continue? [y/N] ")
          if inp in ("", "N", "n"):
              self.output.error("Please install system dependencies to continue")
            sys.exit(1)
  
      def check_missing_dep(self):
          """ Check for missing dependencies """
          for pkg in self.env.required_packages:
              pkg = self.check_os_requirements(pkg)
keep keep keep keep replace keep keep keep keep keep
 Dependencies update (#1028)

* Dependencies update
  - Split requirements.txt into separate version files
  - More flexible package pinning
  - Update dependencies
  - Fix pynvml being constantly re-downloaded on update
  - Update dockerfiles
  - update INSTALL.md 
setup.py