Browse Source

[MNT] merge branch main into sync_with_backend

tags/v0.3.2
Gene 2 years ago
parent
commit
4e99afe7e9
1 changed files with 5 additions and 20 deletions
  1. +5
    -20
      learnware/client/package_utils.py

+ 5
- 20
learnware/client/package_utils.py View File

@@ -20,7 +20,6 @@ def try_to_run(args, timeout=5, retry=5):
break
except subprocess.TimeoutExpired as e:
pass
pass

if not sucess:
raise subprocess.TimeoutExpired(args, timeout)
@@ -42,8 +41,6 @@ def parse_pip_requirement(line: str):
split_ch_index = package_str.find(split_ch)
if split_ch_index != -1:
package_str = package_str[:split_ch_index]
pass
pass

return package_str

@@ -58,7 +55,6 @@ def read_pip_packages_from_requirements(requirements_file: str) -> List[str]:
package_str = parse_pip_requirement(line)
packages.append(package_str)
lines.append(line)
pass

return packages, lines

@@ -78,13 +74,11 @@ def filter_nonexist_pip_packages(packages: list) -> Tuple[List[str], List[str]]:
for package in packages:
try:
# 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)
except Exception as e:
logger.error(e)
nonexist_packages.append(package)
pass
pass

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
nonexist_packages: list of non-exist packages
"""

test_yaml = {
"channels": ["defaults"],
"dependencies": packages,
@@ -125,6 +118,9 @@ def filter_nonexist_conda_packages(packages: list) -> Tuple[List[str], List[str]
exist_packages.append(package)
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
else:
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:
conda_packages = []
pip_packages = []
pass
else:
pip_packages = []
conda_packages_ = []
for package in conda_packages:
if isinstance(package, dict) and "pip" in package:
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):
conda_packages_.append(package)
pass
pass

conda_packages = conda_packages_
pass

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):
with open(yaml_file, "r") as fin:
env_desc = yaml.safe_load(fin)
pass

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
if len(pip_packages) > 0:
env_desc["dependencies"].append({"pip": pip_packages})
pass

with open(output_yaml_file, "w") as fout:
yaml.safe_dump(env_desc, fout)
pass

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):
if package is not None and package in exist_packages:
fout.write(line + "\n")
pass
pass
pass

logger.info(f"exist packages: {packages}")
return exist_packages, nonexist_packages

Loading…
Cancel
Save