Add kernel dependency tree resolver - #779
Conversation
| @@ -0,0 +1,106 @@ | |||
| import importlib.util | |||
There was a problem hiding this comment.
This file is the old deps.py, no changes.
| origin: "RemoteKernel | None" = None | ||
|
|
||
| def install(self, *, api: HfApi, all_variants: bool = False) -> Self: | ||
| def install(self, *, api: HfApi) -> Self: |
There was a problem hiding this comment.
all_variants was a leftover from an experiment, not needed anymore.
| @@ -0,0 +1,72 @@ | |||
| from importlib.util import find_spec | |||
There was a problem hiding this comment.
This file is the old test_deps.py, GH doesn't visualize the renames well.
This change add basic dependency support: - `DepTreeNode`: the kernel dependency tree data structure. - `resolve_kernel_tree`: constructs the dependency tree for a kernel using a solver. - `get_kernel_dep`: function that can be used by a kernel to get one of its dependencies. Note: `get_kernel_dep` is not lined in the documentation yet, since not all bits to actually use it have landed.
|
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 | 78 | 14 | 82% | 47, 53-54, 57-58, 96-104, 119, 130 |
| src/kernels/backends.py | 212 | 62 | 71% | 40, 44, 48-51, 68, 90, 108, 117, 121, 125-127, 148, 157, 161, 165-167, 188, 199, 201, 208-211, 224, 228, 232-252, 260, 283-303 |
| src/kernels/compat.py | 8 | 1 | 88% | 5 |
| src/kernels/deps.py | 67 | 12 | 82% | 46-50, 56-70, 75-82 |
| src/kernels/hf_hub.py | 62 | 5 | 92% | 18, 20, 114, 136-137 |
| src/kernels/importer.py | 48 | 3 | 94% | 110, 114, 117 |
| src/kernels/install.py | 50 | 5 | 90% | 78, 116-117, 155, 173 |
| 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 | 83 | 7 | 92% | 85, 116, 188, 306, 312, 325, 343 |
| src/kernels/layer/globals.py | 5 | 0 | 100% | |
| src/kernels/layer/kernelize.py | 74 | 8 | 89% | 255, 281, 289-290, 296, 300, 316-318 |
| src/kernels/layer/layer.py | 212 | 16 | 92% | 172, 215, 221, 234, 342, 422-423, 435, 444, 452, 463, 492, 496, 509, 562, 592 |
| 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 | 74 | 9 | 88% | 232, 238, 244-245, 266-278 |
| src/kernels/locking.py | 109 | 70 | 36% | 43-110, 114-137, 145, 149-156, 160-170, 174-181 |
| src/kernels/python_deps.py | 58 | 4 | 93% | 59-60, 101, 104 |
| src/kernels/resolver.py | 135 | 6 | 96% | 41, 54-70, 174, 180 |
| src/kernels/status.py | 49 | 2 | 96% | 23, 81 |
| src/kernels/variants.py | 278 | 19 | 93% | 64, 95, 116, 146, 255-256, 298-301, 303, 387-394, 400-406, 437-443, 455-461 |
| src/kernels/verify.py | 88 | 1 | 99% | 32 |
| TOTAL | 2025 | 305 | 85% |
Updated by the Test kernels workflow on commit dc5056156e56a8779ce4b42516004a533d7e144a.
This change add basic dependency support:
DepTreeNode: the kernel dependency tree data structure.resolve_kernel_tree: constructs the dependency tree for a kernel using a solver.get_kernel_dep: function that can be used by a kernel to get one of its dependencies.Note:
get_kernel_depis not lined in the documentation yet, since not all bits to actually use it have landed.