示例#1
0
    def _add_pip_package_requirement(self, pkg_req: Requirement):
        if pkg_req.name in self._pip_packages:
            if (pkg_req.specs and
                    pkg_req.specs != self._pip_packages[pkg_req.name].specs):
                logger.warning(
                    f"Overwriting existing pip package requirement "
                    f"'{self._pip_packages[pkg_req.name]}' to '{pkg_req}'")
            else:
                logger.warning(
                    f"pip package requirement {pkg_req} already exist")
                return

        verification_result = verify_pkg(pkg_req)
        if verification_result == EPP_PKG_NOT_EXIST:
            logger.warning(
                f"pip package requirement `{str(pkg_req)}` not found in current "
                f"python environment")
        elif verification_result == EPP_PKG_VERSION_MISMATCH:
            logger.warning(
                f"pip package requirement `{str(pkg_req)}` does not match the "
                f"version installed in current python environment")

        if verification_result == EPP_NO_ERROR and not pkg_req.specs:
            # pin the current version when there's no version spec found
            pkg_version = get_pkg_version(pkg_req.name)
            if pkg_version:
                pkg_req = Requirement(f"{pkg_req.name}=={pkg_version}")

        self._pip_packages[pkg_req.name] = pkg_req
示例#2
0
 def check_dependency(dependency):
     name, version = parse_requirement_string(dependency)
     code = verify_pkg(name, version)
     if code == EPP_PKG_NOT_EXIST:
         logger.warning(
             '%s package does not exist in the current python '
             'session', name)
     elif code == EPP_PKG_VERSION_MISMATCH:
         logger.warning(
             '%s package version is different from the version '
             'being used in the current python session',
             name,
         )