Sandbox — LSD is in active testing. All systems operational·payments are test-mode (no real charges).
Overview Use Cases News Docs Tool Store Support Community Get LSD
All docs
Docs/ API Reference/ lsdtools.advanced
API Reference

lsdtools.advanced

lsdtools.advanced is the escape hatch to lsd internals — four honest reasons to reach in, and the grouped names it exposes. Use it sparingly.

lsdtools.advanced is the escape hatch below the curated lsdtools surface. The @tool.* decorators are built on a substrate — raw step classes, parameter descriptors, the source-kind registry, the event bus. Reach in only when the declarative API genuinely can't express something. Importing a name from here is the honest signal that you stepped off the stable surface.

Usage#

Python
from typing import Annotated
from lsdtools import Tool, Table
from lsdtools.advanced import param

tool = Tool("demo")

@tool.shape
def clip(t: Table, hi: Annotated[float, param(min=0, max=1)] = 0.5) -> Table:
    ...
# → a tuned parameter widget the declarative form couldn't express

Where to start#

The four honest reasons#

Reach for advanced when — and only when — you need one of these:

  1. Custom parameter widgetsparam(...) / columnmap_param(...) in a signature, via Annotated[...], when the auto-form isn't enough.
  2. Hand-built menu / CLI / view contributionscontribute(...) with a MenuItem, CliCommand, or ViewContribution (a @tool.view returns a View; a custom view's GTK shell registers via lsdtools.views, not here).
  3. Low-level entity / template plumbingEntityAction, FileRole, EntityTemplate for import roles and templates the decorators don't cover.
  4. Tuned step classesLoadStep / ShapeStep / DeliverStep authored as classes when a decorated function can't carry the behavior.

The names it exposes#

Grouped by area (import from lsdtools.advanced):

Group Names
Configurable / params Configurable, Container, ParameterInfo, ValidationResult, param, columnmap_param, COLUMNMAP_WIDGET, column-map + file-input helpers
Sources source_param, SourceKind, FileSourceConfig, SqlSourceConfig, LargeCsvConfig, register_source_kind, source_kind(s), parse_source
Event bus Event, EventBus, Events
Raw flow LoadStep, ShapeStep, DeliverStep, the bare load / shape / deliver, combine_tables, available_steps
Tree ScriptEntity, EntityAction, CreateSpec, topological_order, dependents_map, available_entity_types
Runtime run_pipeline, PipelineResult, RunReport, describe_text, describe_markdown
Packages / contributions PackageManager, PackageInfo, scaffold, contribute, ViewContribution, MenuItem, CliCommand, EntityTemplate, FileRole, registry

LearnContributing UI · Custom views

APITool · Custom views · describe_api · PackageManager

ExamplesA dockable panel · A complete package

By LSD Team · Last updated Jul 18, 2026 Ask on Discord View as Markdown