| @@ -20,7 +20,6 @@ def try_to_run(args, timeout=5, retry=5): | |||||
| break | break | ||||
| except subprocess.TimeoutExpired as e: | except subprocess.TimeoutExpired as e: | ||||
| pass | pass | ||||
| pass | |||||
| if not sucess: | if not sucess: | ||||
| raise subprocess.TimeoutExpired(args, timeout) | raise subprocess.TimeoutExpired(args, timeout) | ||||
| @@ -42,8 +41,6 @@ def parse_pip_requirement(line: str): | |||||
| split_ch_index = package_str.find(split_ch) | split_ch_index = package_str.find(split_ch) | ||||
| if split_ch_index != -1: | if split_ch_index != -1: | ||||
| package_str = package_str[:split_ch_index] | package_str = package_str[:split_ch_index] | ||||
| pass | |||||
| pass | |||||
| return package_str | return package_str | ||||
| @@ -58,7 +55,6 @@ def read_pip_packages_from_requirements(requirements_file: str) -> List[str]: | |||||
| package_str = parse_pip_requirement(line) | package_str = parse_pip_requirement(line) | ||||
| packages.append(package_str) | packages.append(package_str) | ||||
| lines.append(line) | lines.append(line) | ||||
| pass | |||||
| return packages, lines | return packages, lines | ||||
| @@ -78,13 +74,11 @@ def filter_nonexist_pip_packages(packages: list) -> Tuple[List[str], List[str]]: | |||||
| for package in packages: | for package in packages: | ||||
| try: | try: | ||||
| # os.system("python3 -m pip index versions {0}".format(package)) | # os.system("python3 -m pip index versions {0}".format(package)) | ||||
| try_to_run(args=["python3", "-m", "pip", "index", "versions", package], timeout=5) | |||||
| try_to_run(args=["python3", "-m", "pip", "index", "versions", parse_pip_requirement(package)], timeout=5) | |||||
| exist_packages.append(package) | exist_packages.append(package) | ||||
| except Exception as e: | except Exception as e: | ||||
| logger.error(e) | logger.error(e) | ||||
| nonexist_packages.append(package) | nonexist_packages.append(package) | ||||
| pass | |||||
| pass | |||||
| return exist_packages, nonexist_packages | return exist_packages, nonexist_packages | ||||
| @@ -98,7 +92,6 @@ def filter_nonexist_conda_packages(packages: list) -> Tuple[List[str], List[str] | |||||
| exist_packages: list of exist packages | exist_packages: list of exist packages | ||||
| nonexist_packages: list of non-exist packages | nonexist_packages: list of non-exist packages | ||||
| """ | """ | ||||
| test_yaml = { | test_yaml = { | ||||
| "channels": ["defaults"], | "channels": ["defaults"], | ||||
| "dependencies": packages, | "dependencies": packages, | ||||
| @@ -125,6 +118,9 @@ def filter_nonexist_conda_packages(packages: list) -> Tuple[List[str], List[str] | |||||
| exist_packages.append(package) | exist_packages.append(package) | ||||
| logger.info(f"Filtered out {len(nonexist_packages)} non-exist conda dependencies.") | logger.info(f"Filtered out {len(nonexist_packages)} non-exist conda dependencies.") | ||||
| if not any(package.startswith("python=") for package in exist_packages): | |||||
| exist_packages = ["python=3.8"] + exist_packages | |||||
| return exist_packages, nonexist_packages | return exist_packages, nonexist_packages | ||||
| else: | else: | ||||
| return packages, [] | return packages, [] | ||||
| @@ -149,22 +145,17 @@ def read_conda_packages_from_dict(env_desc: dict) -> Tuple[List[str], List[str]] | |||||
| if conda_packages is None: | if conda_packages is None: | ||||
| conda_packages = [] | conda_packages = [] | ||||
| pip_packages = [] | pip_packages = [] | ||||
| pass | |||||
| else: | else: | ||||
| pip_packages = [] | pip_packages = [] | ||||
| conda_packages_ = [] | conda_packages_ = [] | ||||
| for package in conda_packages: | for package in conda_packages: | ||||
| if isinstance(package, dict) and "pip" in package: | if isinstance(package, dict) and "pip" in package: | ||||
| pip_packages = package["pip"] | pip_packages = package["pip"] | ||||
| pip_packages = [parse_pip_requirement(line) for line in pip_packages] | |||||
| pass | |||||
| # pip_packages = [parse_pip_requirement(line) for line in pip_packages] | |||||
| elif isinstance(package, str): | elif isinstance(package, str): | ||||
| conda_packages_.append(package) | conda_packages_.append(package) | ||||
| pass | |||||
| pass | |||||
| conda_packages = conda_packages_ | conda_packages = conda_packages_ | ||||
| pass | |||||
| return conda_packages, pip_packages | return conda_packages, pip_packages | ||||
| @@ -172,7 +163,6 @@ def read_conda_packages_from_dict(env_desc: dict) -> Tuple[List[str], List[str]] | |||||
| def filter_nonexist_conda_packages_file(yaml_file: str, output_yaml_file: str): | def filter_nonexist_conda_packages_file(yaml_file: str, output_yaml_file: str): | ||||
| with open(yaml_file, "r") as fin: | with open(yaml_file, "r") as fin: | ||||
| env_desc = yaml.safe_load(fin) | env_desc = yaml.safe_load(fin) | ||||
| pass | |||||
| conda_packages, pip_packages = read_conda_packages_from_dict(env_desc) | conda_packages, pip_packages = read_conda_packages_from_dict(env_desc) | ||||
| @@ -182,11 +172,9 @@ def filter_nonexist_conda_packages_file(yaml_file: str, output_yaml_file: str): | |||||
| env_desc["dependencies"] = conda_packages | env_desc["dependencies"] = conda_packages | ||||
| if len(pip_packages) > 0: | if len(pip_packages) > 0: | ||||
| env_desc["dependencies"].append({"pip": pip_packages}) | env_desc["dependencies"].append({"pip": pip_packages}) | ||||
| pass | |||||
| with open(output_yaml_file, "w") as fout: | with open(output_yaml_file, "w") as fout: | ||||
| yaml.safe_dump(env_desc, fout) | yaml.safe_dump(env_desc, fout) | ||||
| pass | |||||
| return conda_packages, pip_packages, nonexist_conda_packages, nonexist_pip_packages | return conda_packages, pip_packages, nonexist_conda_packages, nonexist_pip_packages | ||||
| @@ -202,9 +190,6 @@ def filter_nonexist_pip_packages_file(requirements_file: str, output_file: str): | |||||
| for package, line in zip(packages, lines): | for package, line in zip(packages, lines): | ||||
| if package is not None and package in exist_packages: | if package is not None and package in exist_packages: | ||||
| fout.write(line + "\n") | fout.write(line + "\n") | ||||
| pass | |||||
| pass | |||||
| pass | |||||
| logger.info(f"exist packages: {packages}") | logger.info(f"exist packages: {packages}") | ||||
| return exist_packages, nonexist_packages | return exist_packages, nonexist_packages | ||||