Download tests/conftest.py from marcsun13/ggml-quantization: direct link, hf CLI and curl.
- Browser
- Download file 1.63 kB
-
https://huggingface.co/marcsun13/ggml-quantization/resolve/main/tests/conftest.py
- Command line
-
hf download hf://marcsun13/ggml-quantization/tests/conftest.py
-
curl -L -o conftest.py https://huggingface.co/marcsun13/ggml-quantization/resolve/main/tests/conftest.py
1.63 kB
| """Make the built kernel importable as `ggml_quantization`, whichever backend it was built for. | |
| A variant directory is not a package, so `import ggml_quantization` only works if something puts it on | |
| the path. Older CUDA builds happened to ship a `ggml_quantization/` shim that did this; builds from | |
| kernel-builder 0.17 onwards do not, so relying on it would pass on one backend and fail on the other. | |
| Resolving through `kernels.get_local_kernel` is what a consumer does, so the tests exercise the same | |
| loading path rather than a layout detail. | |
| When no kernel loads, the modules that need one are left uncollected rather than skipped from inside | |
| a hook: a skip in `pytest_configure` is an `INTERNALERROR`, and a stub module turns into a confusing | |
| collection error the first time a test touches it. `test_artifacts.py` never needs the kernel and is | |
| always collected, so a build that ships but will not load fails there instead of vanishing into | |
| skips. | |
| """ | |
| import sys | |
| from pathlib import Path | |
| REPO_ROOT = Path(__file__).resolve().parent.parent | |
| # modules that cannot run without a loadable kernel; `test_artifacts.py` deliberately is not one | |
| NEEDS_KERNEL = ["test_ggml_quantization.py", "test_vendor_drift.py"] | |
| collect_ignore = [] | |
| try: | |
| from kernels import get_local_kernel | |
| for _backend in (None, "cuda", "metal"): | |
| try: | |
| sys.modules["ggml_quantization"] = get_local_kernel(REPO_ROOT, _backend) | |
| break | |
| except Exception: # noqa: BLE001, S112 | |
| continue | |
| else: | |
| collect_ignore.extend(NEEDS_KERNEL) | |
| except ImportError: | |
| collect_ignore.extend(NEEDS_KERNEL) | |