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. |
| Parameter | Default | Meaning |
|---|---|---|
top_n | unset | Keep only the first N values. Set at most one of top_n and bottom_n. |
bottom_n | unset | Keep only the last N values. |
Output
The input values in recovered order, each with its zero-based rank. With top_n or bottom_n, only that end of the order is kept and ranks stay positions in the complete order.
Design guidance
Use Sort for parsed dates, numeric scores, and deterministic priorities. Use SemSort only when precedence itself requires interpretation.