Deterministic operators
← Relifold documentationSort
Order values with a deterministic comparison.
Sort recovers an order defined by a trusted comparison.
Worked example
Sort(
name="order-events",
input_spaces=("events",),
output_space="ordered-events",
primary_key="event_id",
evidence=("published_at",),
fn=lambda earlier, later: earlier["published_at"] < later["published_at"],
)Callable contract
fn(earlier, later) -> bool. The callable states whether the first value precedes the second.
Rows available to the callable
Each row argument contains the declared primary-key fields and the declared evidence fields available for that input role. If the callable reads a field that is not part of the primary key, declare it as evidence.
| Parameter | Default | Meaning |
|---|---|---|
input_spaces | required | The Space or Spaces read by the task. |
output_space | required | The Space that receives the task output. |
name | required | A stable task name used in sessions, reviews, and metrics. |
primary_key | id | The field, or tuple of fields, that identifies one task input. Duplicate primary-key values are evaluated once. |
evidence | none | Optional fields made available to the callable in addition to the primary key. |
fn | required | A deterministic callable that completely defines the operation's decision. Use an importable named function from your package, or PythonFunction(name=..., source=...) when authoring through the hosted API or node editor. Pairwise endomorphic functions may declare an exact indexed candidate_gate. |
function_parameters | registered defaults | Typed values bound to parameters declared by the registered function. Finite candidate sets let reviewed evidence support parameter advice. |
Output
The input values in recovered order.
Design guidance
Use Sort for parsed dates, numeric scores, and deterministic priorities. Use SemSort only when precedence itself requires interpretation.