httk.serve.web.providers

Small, dependency-free contracts for site-local paginated data providers.

Attributes

Classes

ProviderContext

The immutable, site-local context passed to a table provider.

TableRequest

The bounded page request passed to provide(context, request, ...).

TableColumn

A table column and its small, presentation-only metadata.

TablePage

One provider-owned page of structured rows and opaque navigation cursors.

Functions

immutable_mapping(→ collections.abc.Mapping[str, object])

Take a recursively immutable snapshot suitable for provider context.

Module Contents

httk.serve.web.providers.MAX_CURSOR_CHARS = 16384[source]
httk.serve.web.providers.MAX_ROW_DATA_BYTES = 512000[source]
httk.serve.web.providers.immutable_mapping(values: collections.abc.Mapping[str, object]) collections.abc.Mapping[str, object][source]

Take a recursively immutable snapshot suitable for provider context.

class httk.serve.web.providers.ProviderContext[source]

The immutable, site-local context passed to a table provider.

route: str[source]
widget_id: str[source]
query: collections.abc.Mapping[str, str][source]
page: collections.abc.Mapping[str, object][source]
global_data: collections.abc.Mapping[str, object][source]
url_for(route: str, *, query: collections.abc.Mapping[str, str] | None = None) str[source]

Build a site-local route URL without exposing the ASGI request.

class httk.serve.web.providers.TableRequest[source]

The bounded page request passed to provide(context, request, ...).

page_size: int = 50[source]
cursor: str | None = None[source]
revision: str | None = None[source]
class httk.serve.web.providers.TableColumn[source]

A table column and its small, presentation-only metadata.

key: str[source]
label: str[source]
align: str | None = None[source]
class_name: str | None = None[source]
classmethod from_value(value: Self | str | collections.abc.Mapping[str, object]) Self[source]

Adapt the compact forms useful in small, site-local providers.

class httk.serve.web.providers.TablePage[source]

One provider-owned page of structured rows and opaque navigation cursors.

rows: tuple[collections.abc.Mapping[str, object], Ellipsis][source]
columns: tuple[TableColumn, Ellipsis][source]
next_cursor: str | None = None[source]
previous_cursor: str | None = None[source]
total: int | None = None[source]
revision: str | None = None[source]
classmethod from_rows(rows: collections.abc.Iterable[collections.abc.Mapping[str, object]], *, columns: collections.abc.Iterable[TableColumn | str | collections.abc.Mapping[str, object]], next_cursor: str | None = None, previous_cursor: str | None = None, total: int | None = None, revision: str | None = None) Self[source]

Construct a page while adapting compact column declarations.

classmethod from_result(value: object) Self[source]

Accept a TablePage or the equivalent explicit mapping.