Repository navigation
Conversation
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |
Coverage report —
|
| Name | Stmts | Miss | Cover | Missing |
|---|---|---|---|---|
| src/kernels/__init__.py | 14 | 0 | 100% | |
| src/kernels/_system.py | 6 | 1 | 83% | 10 |
| src/kernels/_versions.py | 130 | 14 | 89% | 53, 59-60, 63-64, 102, 165-170, 199, 219 |
| src/kernels/archs.py | 56 | 1 | 98% | 94 |
| src/kernels/backends.py | 214 | 62 | 71% | 42, 46, 50-53, 70, 92, 110, 119, 123, 127-129, 150, 159, 163, 167-169, 190, 201, 203, 210-213, 222, 226, 230-250, 258, 281-301 |
| src/kernels/compat.py | 9 | 1 | 89% | 5 |
| src/kernels/deps.py | 70 | 1 | 99% | 56 |
| src/kernels/hf_hub.py | 63 | 2 | 97% | 21, 23 |
| src/kernels/importer.py | 44 | 5 | 89% | 80, 84, 87, 101-102 |
| src/kernels/install.py | 21 | 7 | 67% | 76-100 |
| src/kernels/layer/__init__.py | 6 | 0 | 100% | |
| src/kernels/layer/_interval_tree.py | 103 | 4 | 96% | 23, 52, 147, 150 |
| src/kernels/layer/device.py | 48 | 14 | 71% | 42, 47-49, 91, 96-98, 101, 149, 152, 155-157 |
| src/kernels/layer/func.py | 85 | 6 | 93% | 90, 115, 191, 311, 338, 368 |
| src/kernels/layer/globals.py | 5 | 0 | 100% | |
| src/kernels/layer/kernelize.py | 82 | 8 | 90% | 259, 297, 305-306, 312, 316, 332-334 |
| src/kernels/layer/layer.py | 309 | 22 | 93% | 211, 258, 285, 416, 437, 444-447, 453-454, 556-557, 578, 586, 597, 637, 641, 654, 708, 738, 813 |
| src/kernels/layer/mode.py | 14 | 0 | 100% | |
| src/kernels/layer/repos.py | 144 | 42 | 71% | 27, 33, 36-43, 63-64, 70, 73-76, 90, 94, 103-104, 110, 113-116, 123-124, 130, 133-136, 143-144, 150, 153-156, 163-164, 170, 173-176, 257 |
| src/kernels/load.py | 71 | 2 | 97% | 338, 378 |
| src/kernels/locking.py | 89 | 64 | 28% | 35-83, 91-98, 102-125, 137, 152-159, 165-175, 179-186 |
| src/kernels/python_deps.py | 58 | 6 | 90% | 59-60, 64-65, 101, 104 |
| src/kernels/resolver.py | 158 | 1 | 99% | 231 |
| src/kernels/status.py | 50 | 2 | 96% | 25, 79 |
| src/kernels/validate.py | 88 | 5 | 94% | 9, 100, 167, 190-191 |
| src/kernels/variants.py | 278 | 17 | 94% | 65, 96, 117, 147, 256-257, 299-302, 304, 388-394, 400-406, 455-461 |
| src/kernels/verify.py | 127 | 6 | 95% | 46, 202-204, 318-319 |
| TOTAL | 2342 | 293 | 87% |
Updated by the Test kernels workflow on commit 14bc5620c9790c6d87ad51831ca5621ebc1a0e08.
| def _find_variant_symbols( | ||
| variants: list[Variant], get_path: Callable[[str], Path | None], *, location: str | ||
| ) -> tuple[Path, str]: | ||
| variant = min((v.variant_str for v in variants), default=None) |
There was a problem hiding this comment.
???
Also, don't we want the variant that corresponds to the currently running system? E.g. some exports may be conditioned on on the backend. Seems like it'd be better to use a resolver?
| if version is not None: | ||
| revision = resolve_version_spec_as_ref(repo_id, version, local_files_only=constants.HF_HUB_OFFLINE).name | ||
| elif revision is None: | ||
| versions = _get_available_versions(repo_id, local_files_only=constants.HF_HUB_OFFLINE) | ||
| version = max(versions, default=None) | ||
| revision = versions[version].name if version is not None else "main" | ||
|
|
||
| location = f"{repo_id} (revision: {revision})" | ||
| if version is not None: | ||
| location = f"{repo_id} (version: {version}, revision: {revision})" | ||
|
|
||
| api = _get_hf_api() | ||
| try: | ||
| variants = get_variants(api, repo_id=repo_id, revision=revision) | ||
| except RemoteEntryNotFoundError: | ||
| variants = [] | ||
|
|
||
| def get_path(filename: str) -> Path | None: | ||
| try: | ||
| symbols_path = api.hf_hub_download( | ||
| repo_id, | ||
| repo_type="kernel", | ||
| filename=f"build/{filename}", | ||
| revision=revision, | ||
| cache_dir=_get_cache_dir(), | ||
| local_files_only=constants.HF_HUB_OFFLINE, | ||
| ) | ||
| except RemoteEntryNotFoundError: | ||
| return None | ||
| return Path(symbols_path) | ||
|
|
||
| symbols_path, variant = _find_variant_symbols(variants, get_path, location=location) | ||
| return symbols_path, revision, variant |
There was a problem hiding this comment.
I'd get the latest version (if no version or revision is specified) and then completely rely on the resolver. I think we should avoid having custom fetches and variant discovery in the code base again.
The final PR for
kernels describe-apiafter:Example: