Skip to content

Sorting Serialization

Convert sort specifications to/from compact string format for URLs and APIs.

Format

  • Comma-separated list
  • No prefix or + prefix = ascending
  • Minus prefix (-) = descending

Usage

from therismos.sorting import SortSpec, SortCriterion, SortOrder, Serializer

serializer = Serializer()

spec = SortSpec([
    SortCriterion("age", SortOrder.ASCENDING),
    SortCriterion("created_at", SortOrder.DESCENDING),
    SortCriterion("priority", SortOrder.ASCENDING),
])

text = serializer.serialize(spec)
# "age,-created_at,priority"

restored = serializer.deserialize("name,-score,+priority")
# SortSpec: name ASC, score DESC, priority ASC

SortOrder.NONE criteria are skipped during serialization.