docs: def determine_extra_packages(self, packages):
          """ Return all packages that are installed, but missing from "packages".
              Return value is a tuple of the package names """
  
          args = [
              "pip",
              "freeze",
          ]
          installed = subprocess.check_output(args, universal_newlines=True)
  
          installed_list = set()
          lines = installed.strip().split('\n')
          for (package, version) in self._parse_requirements(lines):
              installed_list.add(package)
  
          package_list = set()
          for (package, version) in self._parse_requirements(packages.readlines()):
              package_list.add(package)
  
          removal_list = installed_list - package_list
          return tuple(removal_list)