Pydantic models for the Dojo trial-viewer PlotConfig.
These are the single source of truth for both server-side validation (profile save/load) and the generated TypeScript types in lib/plot-config.generated.ts.
To regenerate TypeScript types after changing this file:
| Text Only |
|---|
| python scripts/gen_ts_models.py
|
DashStyle
Bases: StrEnum
Dash pattern applied to a plot line.
SOLID
class-attribute
instance-attribute
DASH
class-attribute
instance-attribute
DOT
class-attribute
instance-attribute
DASHDOT
class-attribute
instance-attribute
PythonDASHDOT = 'dashdot'
Alternating dash and dot.
LONGDASH
class-attribute
instance-attribute
PythonLONGDASH = 'longdash'
Dashes with longer lengths.
LONGDASHDOT
class-attribute
instance-attribute
PythonLONGDASHDOT = 'longdashdot'
Alternating long dashes and dots.
MarkerSymbol
Bases: StrEnum
Shape used to mark individual data points.
NONE
class-attribute
instance-attribute
CIRCLE
class-attribute
instance-attribute
SQUARE
class-attribute
instance-attribute
DIAMOND
class-attribute
instance-attribute
PythonDIAMOND = 'diamond'
CROSS
class-attribute
instance-attribute
X
class-attribute
instance-attribute
TRIANGLE_UP
class-attribute
instance-attribute
PythonTRIANGLE_UP = 'triangle-up'
TRIANGLE_DOWN
class-attribute
instance-attribute
PythonTRIANGLE_DOWN = 'triangle-down'
TRIANGLE_LEFT
class-attribute
instance-attribute
PythonTRIANGLE_LEFT = 'triangle-left'
TRIANGLE_RIGHT
class-attribute
instance-attribute
PythonTRIANGLE_RIGHT = 'triangle-right'
TRIANGLE_NE
class-attribute
instance-attribute
PythonTRIANGLE_NE = 'triangle-ne'
TRIANGLE_SE
class-attribute
instance-attribute
PythonTRIANGLE_SE = 'triangle-se'
TRIANGLE_SW
class-attribute
instance-attribute
PythonTRIANGLE_SW = 'triangle-sw'
TRIANGLE_NW
class-attribute
instance-attribute
PythonTRIANGLE_NW = 'triangle-nw'
PENTAGON
class-attribute
instance-attribute
PythonPENTAGON = 'pentagon'
HEXAGON
class-attribute
instance-attribute
PythonHEXAGON = 'hexagon'
HEXAGON2
class-attribute
instance-attribute
PythonHEXAGON2 = 'hexagon2'
OCTAGON
class-attribute
instance-attribute
PythonOCTAGON = 'octagon'
STAR
class-attribute
instance-attribute
HEXAGRAM
class-attribute
instance-attribute
PythonHEXAGRAM = 'hexagram'
STARSQUARE
class-attribute
instance-attribute
PythonSTARSQUARE = 'starsquare'
DIAMOND_CROSS
class-attribute
instance-attribute
PythonDIAMOND_CROSS = 'diamond-cross'
DIAMOND_X
class-attribute
instance-attribute
PythonDIAMOND_X = 'diamond-x'
HOURGLASS
class-attribute
instance-attribute
PythonHOURGLASS = 'hourglass'
BOWTIE
class-attribute
instance-attribute
ASTERISK
class-attribute
instance-attribute
PythonASTERISK = 'asterisk'
HASH
class-attribute
instance-attribute
Y_UP
class-attribute
instance-attribute
Y_DOWN
class-attribute
instance-attribute
Y_LEFT
class-attribute
instance-attribute
Y_RIGHT
class-attribute
instance-attribute
PythonY_RIGHT = 'y-right'
LINE_EW
class-attribute
instance-attribute
PythonLINE_EW = 'line-ew'
LINE_NS
class-attribute
instance-attribute
PythonLINE_NS = 'line-ns'
LINE_NE
class-attribute
instance-attribute
PythonLINE_NE = 'line-ne'
LINE_NW
class-attribute
instance-attribute
PythonLINE_NW = 'line-nw'
ARROW_UP
class-attribute
instance-attribute
PythonARROW_UP = 'arrow-up'
ARROW_DOWN
class-attribute
instance-attribute
PythonARROW_DOWN = 'arrow-down'
ARROW_LEFT
class-attribute
instance-attribute
PythonARROW_LEFT = 'arrow-left'
ARROW_RIGHT
class-attribute
instance-attribute
PythonARROW_RIGHT = 'arrow-right'
GridMode
Bases: StrEnum
Which grid lines are drawn on the plot.
NONE
class-attribute
instance-attribute
MAJOR
class-attribute
instance-attribute
Major tick grid lines only.
ALL
class-attribute
instance-attribute
Major and minor tick grid lines.
LineMode
Bases: StrEnum
Controls whether traces are drawn as lines, markers, or both.
LINES
class-attribute
instance-attribute
MARKERS
class-attribute
instance-attribute
PythonMARKERS = 'markers'
Individual point markers only.
LINES_AND_MARKERS
class-attribute
instance-attribute
PythonLINES_AND_MARKERS = 'lines+markers'
Connected line with point markers.
InterpMode
Bases: StrEnum
Line interpolation method between data points.
LINEAR
class-attribute
instance-attribute
Straight segments between points.
SPLINE
class-attribute
instance-attribute
HV
class-attribute
instance-attribute
Horizontal then vertical step.
VH
class-attribute
instance-attribute
Vertical then horizontal step.
HVH
class-attribute
instance-attribute
Horizontal-vertical-horizontal step.
VHV
class-attribute
instance-attribute
Vertical-horizontal-vertical step.
HoverMode
Bases: StrEnum
Tooltip behavior when hovering over the plot.
X_UNIFIED
class-attribute
instance-attribute
PythonX_UNIFIED = 'x unified'
Single tooltip showing all series at the hovered x value.
Y_UNIFIED
class-attribute
instance-attribute
PythonY_UNIFIED = 'y unified'
Single tooltip showing all series at the hovered y value.
CLOSEST
class-attribute
instance-attribute
PythonCLOSEST = 'closest'
Tooltip for the nearest individual data point.
X
class-attribute
instance-attribute
Per-series tooltips triggered by x proximity.
Y
class-attribute
instance-attribute
Per-series tooltips triggered by y proximity.
NONE
class-attribute
instance-attribute
LegendPos
Bases: StrEnum
Position of the plot legend.
BOTTOM
class-attribute
instance-attribute
Legend below the plot area.
RIGHT
class-attribute
instance-attribute
Legend to the right of the plot area.
HIDDEN
class-attribute
instance-attribute
ScaleType
Bases: StrEnum
Numeric scale type for an axis.
LINEAR
class-attribute
instance-attribute
LOG
class-attribute
instance-attribute
ShapeType
Bases: StrEnum
Geometric shape drawn as an annotation on the plot.
VLINE
class-attribute
instance-attribute
Vertical line at a fixed x value.
HLINE
class-attribute
instance-attribute
Horizontal line at a fixed y value.
RECT
class-attribute
instance-attribute
Filled rectangle defined by x0, x1, y0, y1.
PlotType
Bases: StrEnum
Coordinate system used to render the plot.
CARTESIAN
class-attribute
instance-attribute
PythonCARTESIAN = 'cartesian'
Standard x/y Cartesian axes.
POLAR
class-attribute
instance-attribute
Polar coordinates (r/theta).
DisplayUnitSystem
Bases: StrEnum
Named unit system for display-time conversion of telemetry values. When set, data is converted from its logged units to the chosen system before being returned to the frontend.
SI
class-attribute
instance-attribute
SI units: meter / kilogram / second.
CGS
class-attribute
instance-attribute
CGS units: centimeter / gram / second.
FPS
class-attribute
instance-attribute
FPS units: foot / slug / second.
IPS
class-attribute
instance-attribute
IPS units: inch / slinch / second.
FFF
class-attribute
instance-attribute
Furlong / firkin / fortnight. Not shown in the UI dropdown — set via the JSON editor.
XAxisConfig
Bases: BaseModel
Configuration for the x-axis signal and its filter chain.
YAxisConfig
Bases: BaseModel
Visual and filter configuration for a single y-axis signal.
Annotation
Bases: BaseModel
A text label pinned to a specific data coordinate.
VlineShape
Bases: BaseModel
A vertical reference line at a fixed x value.
HlineShape
Bases: BaseModel
A horizontal reference line at a fixed y value.
RectShape
Bases: BaseModel
A filled rectangle drawn as a reference region.
PlotConfig
Bases: BaseModel
Complete serialisable state of a trial-viewer plot.
PlotProfileTab
Bases: BaseModel
One tab's worth of plot state inside a saved profile.
PlotProfile
Bases: BaseModel
A saved profile: the full set of open plot tabs.
Replaces the old profile format (a single bare PlotConfig per saved
file) - see routers/mosaic.py's get_profile/save_profile for how a
legacy single-config file is transparently read as a one-tab profile.