Small validator refactorings - #809
Conversation
We should be able to change the tree node representation without updating validators, so stop passing tree nodes.
|
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. |
|
The nix fmt error is unrelated. |
**nix formatting issue should be resolved by - #810 |
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 | 9 | 88% | 47, 53-54, 57-58, 97, 119, 130, 136 |
| src/kernels/archs.py | 56 | 1 | 98% | 95 |
| 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 | 65 | 1 | 98% | 58 |
| src/kernels/hf_hub.py | 62 | 2 | 97% | 18, 20 |
| src/kernels/importer.py | 57 | 5 | 91% | 112, 116, 119, 133-134 |
| src/kernels/install.py | 21 | 7 | 67% | 77-101 |
| 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 | 87 | 6 | 93% | 91, 124, 198, 320, 346, 376 |
| 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 | 216 | 15 | 93% | 183, 230, 256, 376, 456-457, 469, 478, 486, 497, 526, 530, 543, 596, 626 |
| 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 | 70 | 2 | 97% | 329, 368 |
| 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 | 141 | 2 | 99% | 182, 188 |
| src/kernels/status.py | 49 | 2 | 96% | 23, 81 |
| src/kernels/validate.py | 40 | 1 | 98% | 58 |
| 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 | 2089 | 275 | 87% |
Updated by the Test kernels workflow on commit f450e3846c241f96be2c68913999306a324f29ca.
sayakpaul
left a comment
There was a problem hiding this comment.
My main comment is if we should have separate validators like this. Right now the argument makes it clear that the validator is only for metadata validation. So, are we aiming for a design where we have arguments for different validators that differ in their areas? For example, for a kernel validator we would add a different argument?
| kernel: KernelDependency, | ||
| resolver: Resolver | None, | ||
| validator: Validator, | ||
| metadata_validator: MetadataValidator, |
There was a problem hiding this comment.
I think this should be a generic validator still because we might want to add a kernel validator in the future and we will have to add another argument for that, right?
There was a problem hiding this comment.
For kernel validators there would be a kernel_validator: KernelValidator argument. Otherwise we'd have MetadataValidator | KernelValidator, but you would not be able to pass both.
There was a problem hiding this comment.
Or, we'd need another Validator protocol, but it couldn't define any methods, since the arguments would be different between metadata and kernel validators.
sayakpaul
left a comment
There was a problem hiding this comment.
Fine to merge I think the nix related failures are unrelated. But I am still debating if it makes sense to have separate arguments for different validators or if they should clubbed. I don't have a clear picture of the pros and cons of both yet.
validationmodule.test_validation.ValidatortoMetadataValidator, since we may want to supportKernelValidators in the future as well.Metadataand the variant string. This makes it possible to change the dependency tree representation without breaking validators.