libstp.step.annotation ====================== .. py:module:: libstp.step.annotation Attributes ---------- .. autoapisummary:: libstp.step.annotation.T libstp.step.annotation.F Classes ------- .. autoapisummary:: libstp.step.annotation.DslMeta Functions --------- .. autoapisummary:: libstp.step.annotation.dsl Module Contents --------------- .. py:class:: DslMeta Discovery metadata attached by ``@dsl`` to steps and factories. .. py:attribute:: hidden :type: bool :value: False .. py:attribute:: name :type: Optional[str] :value: None .. py:attribute:: tags :type: tuple[str, Ellipsis] :value: () .. py:data:: T .. py:data:: F .. py:function:: dsl(_target: T) -> T dsl(_target: F) -> F dsl(_target: None = None, *, hidden: bool = False, name: Optional[str] = None, tags: Optional[list[str] | tuple[str, Ellipsis]] = None) -> Callable[[Union[T, F]], Union[T, F]] Mark a class or function as part of the DSL. Usage: @dsl class X(Step): ... @dsl(hidden=True, name="TurnLeft", tags=["movement", "rotation"]) class Y(Step): ... @dsl(name="Wait", tags=["timing"]) def wait_seconds(seconds: float) -> WaitStep: return WaitStep(seconds) :param hidden: If True, hide from auto-discovery/UI. :param name: Custom display name (defaults to class/function name). :param tags: List of tags for grouping in web UI.