Repository navigation
Untangle kernel loading, part 3 - #747
Conversation
Ideally we'd call the module `import`, but it's a reserved keyword.
|
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 | 13 | 0 | 100% | |
| src/kernels/_system.py | 6 | 1 | 83% | 10 |
| src/kernels/_versions.py | 63 | 7 | 89% | 46, 49, 52-53, 56-57, 100 |
| 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 | 58 | 4 | 93% | 59-60, 101, 104 |
| src/kernels/hf_hub.py | 62 | 5 | 92% | 18, 20, 114, 136-137 |
| src/kernels/importer.py | 48 | 3 | 94% | 106, 110, 113 |
| 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 | 82 | 7 | 91% | 83, 113, 185, 303, 309, 322, 340 |
| 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 | 211 | 16 | 92% | 169, 212, 218, 231, 339, 419-420, 432, 441, 449, 460, 489, 493, 506, 559, 589 |
| 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% | 218, 224, 230-231, 252-264 |
| src/kernels/locking.py | 108 | 70 | 35% | 42-109, 113-136, 144, 148-155, 159-169, 173-180 |
| src/kernels/status.py | 49 | 2 | 96% | 23, 81 |
| src/kernels/variants.py | 278 | 22 | 92% | 64, 95, 116, 146, 255-256, 298-301, 303, 387-394, 400-406, 437-443, 455-461, 611-613 |
| src/kernels/verify.py | 88 | 1 | 99% | 32 |
| TOTAL | 1804 | 283 | 84% |
Updated by the Test kernels workflow on commit d58880204371c0479487828ccd4ab04bc2fc4b93.
sayakpaul
left a comment
There was a problem hiding this comment.
Looks really nice. Just some small questions.
| from kernels.install import ( | ||
| install_kernel, | ||
| install_kernel_all_variants, | ||
| ) | ||
| from kernels.locking import KernelLock, get_kernel_locks |
| from kernels.hf_hub import RepoInfo | ||
|
|
||
|
|
||
| @dataclass(frozen=True) |
There was a problem hiding this comment.
What is the reasoning behind keeping something that is related to loading in "importer"?
There was a problem hiding this comment.
Because it's used by the import functionality. I think the lines between loading and importing is a bit blurry. But I think importing is the last part of loading, so this could have been called ImportedKernel as well.
| _loaded_kernels: dict[Path, LoadedKernel] = {} | ||
|
|
||
|
|
||
| def get_loaded_kernels() -> list[LoadedKernel]: |
KNOWN_BACKENDSvariable.get_kernel_variantsto thevariantsmodule.importer(note that we cannot haveimportbecause it is a keyboard).validate_variant_dependenciestodeps.install.utilsmodule toload.