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
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, )