                  key = CONDA_MAPPING.get(key, (key, None))[0]
              if key not in self.env.installed_packages:
                  self.env.missing_packages.append(pkg)
                  continue
              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
  
      def check_conda_missing_dep(self):
          """ Check for conda missing dependencies """
          if not self.env.is_conda:
              return
 
</s> remove                 self.env.missing_packages.append(pkg)
 </s> add                 self.env.missing_packages.append((key, specs)) </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[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
            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))
                  key = CONDA_MAPPING.get(key, (key, None))[0]
              if key not in self.env.installed_packages:
                  self.env.missing_packages.append(pkg)
                  continue
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
            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))
  
      def check_conda_missing_dep(self):
          """ Check for conda missing dependencies """
          if not self.env.is_conda:
              return
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace 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