weft-kernel 0.1.0__py3-none-any.whl
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.
- weft_kernel/__init__.py +178 -0
- weft_kernel/blocking.py +370 -0
- weft_kernel/context.py +250 -0
- weft_kernel/discovery.py +1181 -0
- weft_kernel/errors.py +73 -0
- weft_kernel/fallback.py +159 -0
- weft_kernel/payload/__init__.py +43 -0
- weft_kernel/payload/applicability.py +298 -0
- weft_kernel/payload/ext.py +172 -0
- weft_kernel/payload/ids.py +22 -0
- weft_kernel/payload/lineage.py +90 -0
- weft_kernel/payload/media_type.py +18 -0
- weft_kernel/payload/node.py +260 -0
- weft_kernel/payload/outcome.py +40 -0
- weft_kernel/payload/property.py +60 -0
- weft_kernel/payload/vector.py +28 -0
- weft_kernel/pipeline.py +748 -0
- weft_kernel/py.typed +0 -0
- weft_kernel/registry.py +692 -0
- weft_kernel/resolution.py +1582 -0
- weft_kernel/runner.py +1436 -0
- weft_kernel/seam.py +725 -0
- weft_kernel-0.1.0.dist-info/METADATA +88 -0
- weft_kernel-0.1.0.dist-info/RECORD +27 -0
- weft_kernel-0.1.0.dist-info/WHEEL +4 -0
- weft_kernel-0.1.0.dist-info/licenses/LICENSE +21 -0
- weft_kernel-0.1.0.dist-info/licenses/NOTICE +77 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"""An embedding: an ordered, non-empty tuple of components.
|
|
2
|
+
|
|
3
|
+
Settled in G4: persistence accepts a vector already computed elsewhere; it
|
|
4
|
+
is never computed from content directly. `Node.embedding` is this type, or
|
|
5
|
+
`None` before an embedding has been computed. Excluded from a node's
|
|
6
|
+
content-addressed identity (`node.py`) because it is derived from content
|
|
7
|
+
and would otherwise bind an id to whichever model produced it.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, model_validator
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Vector(BaseModel):
|
|
14
|
+
"""An embedding: an ordered, non-empty tuple of components."""
|
|
15
|
+
|
|
16
|
+
model_config = ConfigDict(frozen=True, extra="forbid")
|
|
17
|
+
|
|
18
|
+
values: tuple[float, ...]
|
|
19
|
+
|
|
20
|
+
@model_validator(mode="after")
|
|
21
|
+
def _non_empty(self) -> "Vector":
|
|
22
|
+
if not self.values:
|
|
23
|
+
raise ValueError("Vector must carry at least one dimension")
|
|
24
|
+
return self
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def dimension(self) -> int:
|
|
28
|
+
return len(self.values)
|