(
source: str, name: str, repo: str, **kwargs: Any
)
| 405 | |
| 406 | |
| 407 | def _get_latest_bundle_version( |
| 408 | source: str, name: str, repo: str, **kwargs: Any |
| 409 | ) -> dict[str, list[str] | str] | Any | None: |
| 410 | if source == "ngc": |
| 411 | name = _add_ngc_prefix(name) |
| 412 | return _get_latest_bundle_version_ngc(name) |
| 413 | elif source == "monaihosting": |
| 414 | return get_bundle_versions(name, repo="Project-MONAI/model-zoo", tag="dev")["latest_version"] |
| 415 | elif source == "ngc_private": |
| 416 | headers = kwargs.pop("headers", {}) |
| 417 | name = _add_ngc_prefix(name) |
| 418 | return _get_latest_bundle_version_ngc(name, repo=repo, headers=headers) |
| 419 | elif source == "github": |
| 420 | repo_owner, repo_name, tag_name = repo.split("/") |
| 421 | return get_bundle_versions(name, repo=f"{repo_owner}/{repo_name}", tag=tag_name)["latest_version"] |
| 422 | elif source == "huggingface_hub": |
| 423 | refs = huggingface_hub.list_repo_refs(repo_id=repo) |
| 424 | if len(refs.tags) > 0: |
| 425 | all_versions = [t.name for t in refs.tags] # git tags, not to be confused with `tag` |
| 426 | latest_version = ["latest_version" if "latest_version" in all_versions else all_versions[-1]][0] |
| 427 | else: |
| 428 | latest_version = [b.name for b in refs.branches][0] # use the branch that was last updated |
| 429 | return latest_version |
| 430 | else: |
| 431 | raise ValueError( |
| 432 | f"To get the latest bundle version, source should be 'github', 'monaihosting' or 'ngc', got {source}." |
| 433 | ) |
| 434 | |
| 435 | |
| 436 | def _process_bundle_dir(bundle_dir: PathLike | None = None) -> Path: |
no test coverage detected
searching dependent graphs…