|
3 | 3 |
|
4 | 4 | import conda.cli.python_api
|
5 | 5 | from conda.env.specs import RequirementsSpec
|
| 6 | +from conda.exceptions import PackagesNotFoundError |
6 | 7 | from conda.models.match_spec import MatchSpec
|
7 | 8 | from semver import Version
|
8 | 9 |
|
@@ -104,9 +105,14 @@ def pull_conda_package_metadata(image_config, image_artifact_dir):
|
104 | 105 | for package, match_spec_out in target_packages_match_spec_out.items():
|
105 | 106 | if str(match_spec_out).startswith("conda-forge"):
|
106 | 107 | # Pull package metadata from conda-forge and dump into json file
|
107 |
| - search_result = conda.cli.python_api.run_command("search", str(match_spec_out), "--json") |
108 |
| - package_metadata = json.loads(search_result[0])[package][0] |
109 |
| - results[package] = {"version": package_metadata["version"], "size": package_metadata["size"]} |
| 108 | + try: |
| 109 | + search_result = conda.cli.python_api.run_command("search", str(match_spec_out), "--json") |
| 110 | + package_metadata = json.loads(search_result[0])[package][0] |
| 111 | + results[package] = {"version": package_metadata["version"], "size": package_metadata["size"]} |
| 112 | + except PackagesNotFoundError: |
| 113 | + print( |
| 114 | + f"Failed to pull package metadata for {package}, {match_spec_out} from conda-forge, ignore. Potentially this package is broken." |
| 115 | + ) |
110 | 116 | # Sort the pakcage sizes in decreasing order
|
111 | 117 | results = {k: v for k, v in sorted(results.items(), key=lambda item: item[1]["size"], reverse=True)}
|
112 | 118 |
|
|
0 commit comments