bundle.website.builtin.components

Built-in website components and UI helpers.

Submodules

Classes

Component

Base data model class, providing utilities for serialization and deserialization

ComponentAsset

Base data model class, providing utilities for serialization and deserialization

ComponentAssets

Base data model class, providing utilities for serialization and deserialization

GPXComponentParams

Shared params for GPX websocket components.

GPXWebSocketBaseComponent

Base class for graph-oriented websocket components.

WebSocketBaseComponent

Base websocket component with default params and shared assets.

WebSocketComponentParams

Shared websocket parameters for component instances.

WebSocketECCComponent

Base websocket component with default params and shared assets.

WebSocketHeartbeatComponent

Base websocket component with default params and shared assets.

WebSocketHeartBeatCardioComponent

Base class for graph-oriented websocket components.

WebSocketHeartBeatMonitorEarthComponent

Base class for graph-oriented websocket components.

WebSocketHeartBeatMonitorEarthMoonComponent

Base class for graph-oriented websocket components.

WebSocketToastComponent

Websocket component that pushes periodic toast messages to the client.

Functions

attach_routes(→ None)

context(→ dict[str, Any])

Package Contents

class bundle.website.builtin.components.Component(/, **data: Any)

Bases: bundle.core.data.Data

Base data model class, providing utilities for serialization and deserialization from/to JSON, along with JSON Schema generation.

model_config

Default model configuration settings.

slug: str
template: str | None = None
assets: list[ComponentAsset] = None
routers: list[fastapi.APIRouter] = None
params: bundle.core.data.Data | None = None
name: str | None = None
description: str | None = None
asset_filenames: ClassVar[tuple[str, Ellipsis]] = ('component.css', 'component.js', 'component.mjs')
component_file: str | pathlib.Path | None = None
build_routers() list[fastapi.APIRouter]
static component_assets(*paths: str, route_name: str = 'components_static') list[ComponentAsset]
classmethod component_asset_paths_for(component_file: str | pathlib.Path, *, asset_filenames: collections.abc.Iterable[str] | None = None) list[str]
classmethod component_assets_for(component_file: str | pathlib.Path, *, route_name: str = 'components_static') list[ComponentAsset]
classmethod component_template_for(component_file: str | pathlib.Path) str | None
class bundle.website.builtin.components.ComponentAsset(/, **data: Any)

Bases: bundle.core.data.Data

Base data model class, providing utilities for serialization and deserialization from/to JSON, along with JSON Schema generation.

model_config

Default model configuration settings.

kind: AssetKind | None = None
path: str
route_name: str = 'static'
module: bool = False
class bundle.website.builtin.components.ComponentAssets(/, **data: Any)

Bases: bundle.core.data.Data

Base data model class, providing utilities for serialization and deserialization from/to JSON, along with JSON Schema generation.

model_config

Default model configuration settings.

styles: list[ComponentAsset] = None
scripts: list[ComponentAsset] = None
classmethod from_components(items: tuple[Component, Ellipsis]) ComponentAssets
bundle.website.builtin.components.attach_routes(router: fastapi.APIRouter, *items: Component) None
bundle.website.builtin.components.context(*items: Component) dict[str, Any]
class bundle.website.builtin.components.GPXComponentParams(/, **data: Any)

Bases: bundle.website.builtin.components.graphic.threeD.GraphicThreeDComponentParams, bundle.website.builtin.components.websocket.base.component.WebSocketComponentParams

Shared params for GPX websocket components.

graph_id: str = 'gpx'
class bundle.website.builtin.components.GPXWebSocketBaseComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.component.WebSocketBaseComponent, bundle.website.builtin.components.graphic.threeD.GraphicThreeDComponent

Base class for graph-oriented websocket components.

params: GPXComponentParams = None
class bundle.website.builtin.components.WebSocketBaseComponent(/, **data: Any)

Bases: bundle.website.core.component.Component

Base websocket component with default params and shared assets.

shared_assets: ClassVar[tuple[str, Ellipsis]] = ('websocket/base/component.css',)
params: WebSocketComponentParams = None
classmethod shared_asset_paths() list[str]
classmethod component_asset_paths_for(component_file: str | pathlib.Path, *, asset_filenames: collections.abc.Iterable[str] | None = None) list[str]
async handle_websocket(websocket: fastapi.WebSocket) None

Default websocket handler (keepalive protocol).

build_routers()

Attach the component websocket route using the configured endpoint.

class bundle.website.builtin.components.WebSocketComponentParams(/, **data: Any)

Bases: bundle.core.data.Data

Shared websocket parameters for component instances.

endpoint: str = '/ws/default'
class bundle.website.builtin.components.WebSocketECCComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.WebSocketBaseComponent

Base websocket component with default params and shared assets.

component_file: str = '/home/runner/work/TheBundle/TheBundle/src/bundle/website/builtin/components/websocket/ecc/component.py'
slug: str = 'ws-ecc'
name: str = 'WebSocket ECC monitor'
description: str = 'Monitor TX/RX keepalive pulses and timing.'
params: bundle.website.builtin.components.websocket.base.WebSocketComponentParams
class bundle.website.builtin.components.WebSocketHeartbeatComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.WebSocketBaseComponent

Base websocket component with default params and shared assets.

component_file: str = '/home/runner/work/TheBundle/TheBundle/src/bundle/website/builtin/components/websocket/heartbeat/...
slug: str = 'ws-heartbeat'
name: str = 'WebSocket Heartbeat'
description: str = 'Periodic keepalive loop with a minimal UI.'
params: bundle.website.builtin.components.websocket.base.WebSocketComponentParams
class bundle.website.builtin.components.WebSocketHeartBeatCardioComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.GPXWebSocketBaseComponent

Base class for graph-oriented websocket components.

component_file: str = '/home/runner/work/TheBundle/TheBundle/src/bundle/website/builtin/components/websocket/heartbeat_...
slug: str = 'ws-heartbeat-cardio'
name: str = 'HeartBeatCardio'
description: str = '3D cardiogram monitor for websocket heartbeat pulses.'
params: bundle.website.builtin.components.websocket.base.GPXComponentParams
class bundle.website.builtin.components.WebSocketHeartBeatMonitorEarthComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.GPXWebSocketBaseComponent

Base class for graph-oriented websocket components.

component_file: str = '/home/runner/work/TheBundle/TheBundle/src/bundle/website/builtin/components/websocket/heartbeat_...
slug: str = 'ws-heartbeat-earth'
name: str = 'HeartBeatMonitorEarth'
description: str = 'Futuristic Earth monitor for websocket heartbeat pulses.'
params: bundle.website.builtin.components.websocket.base.GPXComponentParams
class bundle.website.builtin.components.WebSocketHeartBeatMonitorEarthMoonComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.GPXWebSocketBaseComponent

Base class for graph-oriented websocket components.

component_file: str = '/home/runner/work/TheBundle/TheBundle/src/bundle/website/builtin/components/websocket/heartbeat_...
slug: str = 'ws-heartbeat-earth-moon'
name: str = 'HeartBeatMonitorEarthMoon'
description: str = 'Heartbeat monitor with Earth moon scene (server moon, client heart).'
params: bundle.website.builtin.components.websocket.base.GPXComponentParams
class bundle.website.builtin.components.WebSocketToastComponent(/, **data: Any)

Bases: bundle.website.builtin.components.websocket.base.WebSocketBaseComponent

Websocket component that pushes periodic toast messages to the client.

component_file: str = '/home/runner/work/TheBundle/TheBundle/src/bundle/website/builtin/components/websocket/toast/comp...
slug: str = 'ws-toast'
name: str = 'WebSocket Toast Feed'
description: str = 'Toast notifications for incoming messages.'
params: bundle.website.builtin.components.websocket.base.WebSocketComponentParams
async handle_websocket(websocket: fastapi.WebSocket) None

Run periodic server push while draining client messages.