| 443 | |
| 444 | |
| 445 | def get_kernel( |
| 446 | kernel_name: str, |
| 447 | revision: str | None = None, |
| 448 | version: int | str | None = None, |
| 449 | allow_all_kernels: bool = False, |
| 450 | ) -> ModuleType: |
| 451 | from .. import __version__ |
| 452 | |
| 453 | if not _kernels_available: |
| 454 | raise ImportError( |
| 455 | "`kernels` is either not installed or uses an incompatible version. Please install the latest version " |
| 456 | "with `pip install -U kernels`." |
| 457 | ) |
| 458 | |
| 459 | repo_parent = kernel_name.split("/")[0] |
| 460 | # all `kernels-community` repos are trusted by default! |
| 461 | if repo_parent != "kernels-community" and not allow_all_kernels: |
| 462 | raise ValueError( |
| 463 | "You need to specify `allow_all_kernels=True` to use kernels outside of the `kernels-community` repository" |
| 464 | ) |
| 465 | |
| 466 | user_agent = {"framework": "transformers", "version": __version__, "repo_id": kernel_name} |
| 467 | kernels_version = importlib.metadata.version("kernels") |
| 468 | if pkg_version.parse(kernels_version) >= pkg_version.parse("0.10.4"): |
| 469 | return get_kernel_hub(kernel_name, revision=revision, version=version, user_agent=user_agent) |
| 470 | else: |
| 471 | return get_kernel_hub(kernel_name, revision=revision, version=version) |
| 472 | |
| 473 | |
| 474 | def use_kernelized_func(module_names: list[Callable] | Callable): |