kernels 0.18.1__tar.gz → 0.18.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. {kernels-0.18.1 → kernels-0.18.2}/Cargo.lock +4 -4
  2. {kernels-0.18.1 → kernels-0.18.2}/PKG-INFO +3 -2
  3. {kernels-0.18.1 → kernels-0.18.2}/kernels/Cargo.toml +2 -2
  4. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_digest.py +14 -1
  5. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_verify.py +14 -10
  6. {kernels-0.18.1 → kernels-0.18.2}/kernels/uv.lock +6 -4
  7. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/Cargo.toml +1 -1
  8. {kernels-0.18.1 → kernels-0.18.2}/pyproject.toml +2 -2
  9. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/verify_signature.py +13 -2
  10. {kernels-0.18.1 → kernels-0.18.2}/Cargo.toml +0 -0
  11. {kernels-0.18.1 → kernels-0.18.2}/README.md +0 -0
  12. {kernels-0.18.1 → kernels-0.18.2}/kernels/README.md +0 -0
  13. {kernels-0.18.1 → kernels-0.18.2}/kernels/pytest.ini +0 -0
  14. {kernels-0.18.1 → kernels-0.18.2}/kernels/rust/config.rs +0 -0
  15. {kernels-0.18.1 → kernels-0.18.2}/kernels/rust/git.rs +0 -0
  16. {kernels-0.18.1 → kernels-0.18.2}/kernels/rust/lib.rs +0 -0
  17. {kernels-0.18.1 → kernels-0.18.2}/kernels/rust/lock.rs +0 -0
  18. {kernels-0.18.1 → kernels-0.18.2}/kernels/rust/signing.rs +0 -0
  19. {kernels-0.18.1 → kernels-0.18.2}/kernels/rust/version.rs +0 -0
  20. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/conftest.py +0 -0
  21. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/kernel_locking/kernels.lock +0 -0
  22. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/kernel_locking/pyproject.toml +0 -0
  23. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/layer_locking/kernels.lock +0 -0
  24. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/layer_locking/pyproject.toml +0 -0
  25. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_archs.py +0 -0
  26. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_basic.py +0 -0
  27. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_benchmarks.py +0 -0
  28. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_cli_benchmark.py +0 -0
  29. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_cli_cache.py +0 -0
  30. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_cli_describe_api.py +0 -0
  31. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_cli_info.py +0 -0
  32. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_cli_variants.py +0 -0
  33. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_data_config.py +0 -0
  34. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_data_digest.py +0 -0
  35. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_data_kernel_lock.py +0 -0
  36. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_data_metadata.py +0 -0
  37. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_data_version.py +0 -0
  38. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_deps.py +0 -0
  39. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_doctest.py +0 -0
  40. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_entry_points.py +0 -0
  41. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_func.py +0 -0
  42. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_importer.py +0 -0
  43. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_interval_tree.py +0 -0
  44. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_kernel_locking.py +0 -0
  45. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_layer.py +0 -0
  46. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_loaded_kernels.py +0 -0
  47. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_python_deps.py +0 -0
  48. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_resolver.py +0 -0
  49. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_status.py +0 -0
  50. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_trust_remote_code.py +0 -0
  51. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_tvm_ffi.py +0 -0
  52. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_user_agent.py +0 -0
  53. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_validate.py +0 -0
  54. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_variants.py +0 -0
  55. {kernels-0.18.1 → kernels-0.18.2}/kernels/tests/test_versions.py +0 -0
  56. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/compat.rs +0 -0
  57. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/deps.rs +0 -0
  58. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/git_url.rs +0 -0
  59. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/kernel_deps.rs +0 -0
  60. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/mod.rs +0 -0
  61. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/name.rs +0 -0
  62. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/parse.rs +0 -0
  63. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/v1.rs +0 -0
  64. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/v2.rs +0 -0
  65. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/v3.rs +0 -0
  66. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/v4.rs +0 -0
  67. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/v5.rs +0 -0
  68. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/config/v6.rs +0 -0
  69. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/digest.rs +0 -0
  70. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/git.rs +0 -0
  71. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/hf.rs +0 -0
  72. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/lib.rs +0 -0
  73. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/lock.rs +0 -0
  74. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/metadata.rs +0 -0
  75. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/python_dependencies.json +0 -0
  76. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/signing/mod.rs +0 -0
  77. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/signing/receipt.rs +0 -0
  78. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/src/version.rs +0 -0
  79. {kernels-0.18.1 → kernels-0.18.2}/kernels-common/tests/data/legacy-sha-provenance.json +0 -0
  80. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/__init__.py +0 -0
  81. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/_rust.pyi +0 -0
  82. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/_system.py +0 -0
  83. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/_versions.py +0 -0
  84. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/_windows.py +0 -0
  85. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/archs.py +0 -0
  86. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/backends.py +0 -0
  87. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/benchmark.py +0 -0
  88. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/benchmarks/__init__.py +0 -0
  89. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/benchmarks/activation.py +0 -0
  90. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/benchmarks/attention.py +0 -0
  91. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/benchmarks/layer_norm.py +0 -0
  92. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/__init__.py +0 -0
  93. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/benchmark.py +0 -0
  94. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/benchmark_graphics.py +0 -0
  95. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/cache.py +0 -0
  96. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/describe_api.py +0 -0
  97. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/download.py +0 -0
  98. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/info.py +0 -0
  99. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/lock.py +0 -0
  100. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/variants.py +0 -0
  101. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/cli/versions.py +0 -0
  102. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/compat.py +0 -0
  103. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/deps.py +0 -0
  104. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/digest.py +0 -0
  105. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/hf_hub.py +0 -0
  106. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/importer.py +0 -0
  107. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/install.py +0 -0
  108. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/__init__.py +0 -0
  109. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/_interval_tree.py +0 -0
  110. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/device.py +0 -0
  111. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/func.py +0 -0
  112. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/globals.py +0 -0
  113. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/inspect.py +0 -0
  114. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/kernelize.py +0 -0
  115. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/layer.py +0 -0
  116. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/mode.py +0 -0
  117. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/layer/repos.py +0 -0
  118. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/load.py +0 -0
  119. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/locking.py +0 -0
  120. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/python_depends.json +0 -0
  121. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/python_deps.py +0 -0
  122. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/resolver.py +0 -0
  123. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/status.py +0 -0
  124. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/validate.py +0 -0
  125. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/variants.py +0 -0
  126. {kernels-0.18.1 → kernels-0.18.2}/src/kernels/verify.py +0 -0
@@ -1058,7 +1058,7 @@ dependencies = [
1058
1058
 
1059
1059
  [[package]]
1060
1060
  name = "hf-kernel-builder"
1061
- version = "0.18.1"
1061
+ version = "0.18.2"
1062
1062
  dependencies = [
1063
1063
  "base32",
1064
1064
  "built",
@@ -1550,7 +1550,7 @@ dependencies = [
1550
1550
 
1551
1551
  [[package]]
1552
1552
  name = "kernel-abi-check"
1553
- version = "0.18.1"
1553
+ version = "0.18.2"
1554
1554
  dependencies = [
1555
1555
  "cpp_demangle",
1556
1556
  "eyre",
@@ -1581,7 +1581,7 @@ dependencies = [
1581
1581
 
1582
1582
  [[package]]
1583
1583
  name = "kernels-common"
1584
- version = "0.18.1"
1584
+ version = "0.18.2"
1585
1585
  dependencies = [
1586
1586
  "base64",
1587
1587
  "digest",
@@ -1603,7 +1603,7 @@ dependencies = [
1603
1603
 
1604
1604
  [[package]]
1605
1605
  name = "kernels-python"
1606
- version = "0.18.1"
1606
+ version = "0.18.2"
1607
1607
  dependencies = [
1608
1608
  "eyre",
1609
1609
  "kernels-common",
@@ -1,10 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kernels
3
- Version: 0.18.1
3
+ Version: 0.18.2
4
4
  Requires-Dist: huggingface-hub>=1.32.0
5
5
  Requires-Dist: packaging>=20.0
6
6
  Requires-Dist: pyyaml>=6
7
- Requires-Dist: sigstore>=4,<5
8
7
  Requires-Dist: tomli>=2.0 ; python_full_version < '3.11'
9
8
  Requires-Dist: typing-extensions>=4.0 ; python_full_version < '3.11'
10
9
  Requires-Dist: tomlkit>=0.13.3
@@ -18,11 +17,13 @@ Requires-Dist: apache-tvm-ffi>=0.1.9,<0.2.0 ; extra == 'curated'
18
17
  Requires-Dist: einops ; extra == 'curated-xpu'
19
18
  Requires-Dist: apache-tvm-ffi>=0.1.9,<0.2.0 ; extra == 'curated-xpu'
20
19
  Requires-Dist: hf-doc-builder ; extra == 'docs'
20
+ Requires-Dist: sigstore>=4,<5 ; extra == 'sigstore'
21
21
  Requires-Dist: torch ; extra == 'torch'
22
22
  Provides-Extra: benchmark
23
23
  Provides-Extra: curated
24
24
  Provides-Extra: curated-xpu
25
25
  Provides-Extra: docs
26
+ Provides-Extra: sigstore
26
27
  Provides-Extra: torch
27
28
  Summary: Download compute kernels
28
29
  Home-Page: https://github.com/huggingface/kernels
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "kernels-python"
3
- version = "0.18.1"
3
+ version = "0.18.2"
4
4
  edition = "2024"
5
5
  description = "Kernels data structures (Python bindings)"
6
6
  homepage = "https://github.com/huggingface/kernels"
@@ -20,4 +20,4 @@ serde_json = "1"
20
20
 
21
21
  [dependencies.kernels-common]
22
22
  path = "../kernels-common"
23
- version = "0.18.1"
23
+ version = "0.18.2"
@@ -223,13 +223,26 @@ def test_digest_verification_does_not_need_sigstore():
223
223
  "import sys\n"
224
224
  # A `None` entry makes importing the module fail.
225
225
  "sys.modules['sigstore'] = None\n"
226
- "import kernels.digest, kernels.validate\n"
226
+ "import kernels.cli, kernels.digest, kernels.validate\n"
227
227
  "from kernels.compat import has_sigstore\n"
228
228
  "assert not has_sigstore\n"
229
229
  )
230
230
  subprocess.run([sys.executable, "-c", script], check=True)
231
231
 
232
232
 
233
+ def test_verify_signature_command_needs_sigstore():
234
+ """Without `sigstore`, `kernels verify-signature` must fail with an actionable message."""
235
+ script = (
236
+ "import argparse, sys\n"
237
+ "sys.modules['sigstore'] = None\n"
238
+ "from kernels.cli.verify_signature import verify_signature\n"
239
+ "verify_signature(argparse.Namespace())\n"
240
+ )
241
+ result = subprocess.run([sys.executable, "-c", script], capture_output=True, text=True)
242
+ assert result.returncode == 1
243
+ assert 'pip install "kernels[sigstore]"' in result.stderr
244
+
245
+
233
246
  ALL_RESULTS = [
234
247
  DigestVerificationResult.Success(),
235
248
  DigestVerificationResult.DigestMissing(),
@@ -3,16 +3,20 @@ from dataclasses import is_dataclass
3
3
  from pathlib import Path
4
4
 
5
5
  import pytest
6
- from sigstore.verify import policy
7
-
8
- import kernels.verify as verify_module
9
- from kernels import install_kernel
10
- from kernels._rust import DigestViolation, KernelLocation, Metadata, Oid, SignatureReceiptStore
11
- from kernels._versions import resolve_revision_or_version
12
- from kernels.digest import DigestVerificationResult, verify_digest
13
- from kernels.hf_hub import _get_cache_dir, _get_hf_api
14
- from kernels.resolver import _BYTECODE_IGNORE_PATTERNS
15
- from kernels.verify import SignatureVerificationResult, verify_signature
6
+
7
+ # sigstore is an optional dependency.
8
+ pytest.importorskip("sigstore")
9
+
10
+ from sigstore.verify import policy # noqa: E402
11
+
12
+ import kernels.verify as verify_module # noqa: E402
13
+ from kernels import install_kernel # noqa: E402
14
+ from kernels._rust import DigestViolation, KernelLocation, Metadata, Oid, SignatureReceiptStore # noqa: E402
15
+ from kernels._versions import resolve_revision_or_version # noqa: E402
16
+ from kernels.digest import DigestVerificationResult, verify_digest # noqa: E402
17
+ from kernels.hf_hub import _get_cache_dir, _get_hf_api # noqa: E402
18
+ from kernels.resolver import _BYTECODE_IGNORE_PATTERNS # noqa: E402
19
+ from kernels.verify import SignatureVerificationResult, verify_signature # noqa: E402
16
20
 
17
21
  TEST_POLICY: policy.VerificationPolicy = policy.Identity(
18
22
  identity="me@danieldk.eu", issuer="https://github.com/login/oauth"
@@ -1457,13 +1457,12 @@ wheels = [
1457
1457
 
1458
1458
  [[package]]
1459
1459
  name = "kernels"
1460
- version = "0.18.1"
1460
+ version = "0.18.2"
1461
1461
  source = { editable = "." }
1462
1462
  dependencies = [
1463
1463
  { name = "huggingface-hub" },
1464
1464
  { name = "packaging" },
1465
1465
  { name = "pyyaml" },
1466
- { name = "sigstore" },
1467
1466
  { name = "tomli", marker = "python_full_version < '3.11'" },
1468
1467
  { name = "tomlkit" },
1469
1468
  { name = "typing-extensions", marker = "python_full_version < '3.11'" },
@@ -1491,6 +1490,9 @@ curated-xpu = [
1491
1490
  docs = [
1492
1491
  { name = "hf-doc-builder" },
1493
1492
  ]
1493
+ sigstore = [
1494
+ { name = "sigstore" },
1495
+ ]
1494
1496
  torch = [
1495
1497
  { name = "torch" },
1496
1498
  ]
@@ -1522,7 +1524,7 @@ requires-dist = [
1522
1524
  { name = "nvidia-cutlass-dsl", marker = "extra == 'curated'" },
1523
1525
  { name = "packaging", specifier = ">=20.0" },
1524
1526
  { name = "pyyaml", specifier = ">=6" },
1525
- { name = "sigstore", specifier = ">=4,<5" },
1527
+ { name = "sigstore", marker = "extra == 'sigstore'", specifier = ">=4,<5" },
1526
1528
  { name = "tabulate", marker = "extra == 'benchmark'", specifier = ">=0.9.0" },
1527
1529
  { name = "tomli", marker = "python_full_version < '3.11'", specifier = ">=2.0" },
1528
1530
  { name = "tomlkit", specifier = ">=0.13.3" },
@@ -1530,7 +1532,7 @@ requires-dist = [
1530
1532
  { name = "torch", marker = "extra == 'torch'" },
1531
1533
  { name = "typing-extensions", marker = "python_full_version < '3.11'", specifier = ">=4.0" },
1532
1534
  ]
1533
- provides-extras = ["benchmark", "torch", "curated", "curated-xpu", "docs"]
1535
+ provides-extras = ["benchmark", "sigstore", "torch", "curated", "curated-xpu", "docs"]
1534
1536
 
1535
1537
  [package.metadata.requires-dev]
1536
1538
  dev = [
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "kernels-common"
3
- version = "0.18.1"
3
+ version = "0.18.2"
4
4
  edition = "2024"
5
5
  description = "Code shared by kernel-builder and kernels"
6
6
  homepage = "https://github.com/huggingface/kernels"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernels"
3
- version = "0.18.1"
3
+ version = "0.18.2"
4
4
  description = "Download compute kernels"
5
5
  authors = [
6
6
  { name = "Daniel de Kok", email = "daniel@huggingface.co" },
@@ -13,7 +13,6 @@ dependencies = [
13
13
  "huggingface-hub>=1.32.0",
14
14
  "packaging>=20.0",
15
15
  "pyyaml>=6",
16
- "sigstore>=4,<5",
17
16
  "tomli>=2.0; python_version<'3.11'",
18
17
  "typing-extensions>=4.0; python_version<'3.11'",
19
18
  "tomlkit>=0.13.3",
@@ -45,6 +44,7 @@ benchmark = [
45
44
  "tabulate>=0.9.0",
46
45
  "torch",
47
46
  ]
47
+ sigstore = ["sigstore>=4,<5"]
48
48
  torch = ["torch"]
49
49
  curated = [
50
50
  "nvidia-cutlass-dsl",
@@ -10,14 +10,25 @@ else:
10
10
 
11
11
  from kernels._rust import KernelLocation, Metadata
12
12
  from kernels._versions import resolve_revision_or_version
13
+ from kernels.compat import has_sigstore
13
14
  from kernels.digest import DigestVerificationResult, verify_digest
14
15
  from kernels.install import install_kernel, install_kernel_all_variants
15
16
  from kernels.variants import get_variants_local
16
- from kernels.verify import SignatureVerificationResult
17
- from kernels.verify import verify_signature as verify_variant_signature
18
17
 
19
18
 
20
19
  def verify_signature(args: argparse.Namespace) -> None:
20
+ if not has_sigstore:
21
+ print(
22
+ "❌ Verifying signatures requires the `sigstore` package, "
23
+ 'install it with: pip install "kernels[sigstore]"',
24
+ file=sys.stderr,
25
+ )
26
+ sys.exit(1)
27
+
28
+ # Lazily import optional dependency.
29
+ from kernels.verify import SignatureVerificationResult
30
+ from kernels.verify import verify_signature as verify_variant_signature
31
+
21
32
  revision = resolve_revision_or_version(
22
33
  args.repo_id,
23
34
  revision=None,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes