Hi there! I'm looking for projects to base a semantic layer on. Sidemantic looks very close to what we need. I've tried running the demo but have stumbled on a few issues:
❯ uvx sidemantic workbench --demo
╭─────────────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────────────╮
│ /Users/vsb/.cache/uv/archive-v0/MPFwr5ebeDtoKqhB9lYOH/lib/python3.13/site-packages/sidemantic/cli.py:791 in workbench │
│ │
│ 788 │ sidemantic workbench ./models --connection "postgres://localhost:5432/db" │
│ 789 │ uvx sidemantic workbench --demo │
│ 790 │ """ │
│ ❱ 791 │ from sidemantic.workbench import run_workbench │
│ 792 │ │
│ 793 │ if demo: │
│ 794 │ │ import sidemantic │
│ │
│ /Users/vsb/.cache/uv/archive-v0/MPFwr5ebeDtoKqhB9lYOH/lib/python3.13/site-packages/sidemantic/workbench/__init__.py:5 in <module> │
│ │
│ 2 │
│ 3 from pathlib import Path │
│ 4 │
│ ❱ 5 from sidemantic.workbench.app import SidequeryWorkbench │
│ 6 from sidemantic.workbench.validation_app import ValidationApp │
│ 7 │
│ 8 │
│ │
│ /Users/vsb/.cache/uv/archive-v0/MPFwr5ebeDtoKqhB9lYOH/lib/python3.13/site-packages/sidemantic/workbench/app.py:5 in <module> │
│ │
│ 2 │
│ 3 from pathlib import Path │
│ 4 │
│ ❱ 5 from textual import events │
│ 6 from textual.app import App, ComposeResult │
│ 7 from textual.binding import Binding │
│ 8 from textual.containers import Horizontal, Vertical, VerticalScroll │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'textual'
❯ uvx --with textual sidemantic workbench --demo
╭─────────────────────────────────────────────────────── Traceback (most recent call last) ───────────────────────────────────────────────────────╮
│ /Users/vsb/.cache/uv/archive-v0/_haf4OUi9pRiNcTAg_-Qz/lib/python3.13/site-packages/sidemantic/cli.py:791 in workbench │
│ │
│ 788 │ sidemantic workbench ./models --connection "postgres://localhost:5432/db" │
│ 789 │ uvx sidemantic workbench --demo │
│ 790 │ """ │
│ ❱ 791 │ from sidemantic.workbench import run_workbench │
│ 792 │ │
│ 793 │ if demo: │
│ 794 │ │ import sidemantic │
│ │
│ /Users/vsb/.cache/uv/archive-v0/_haf4OUi9pRiNcTAg_-Qz/lib/python3.13/site-packages/sidemantic/workbench/__init__.py:5 in <module> │
│ │
│ 2 │
│ 3 from pathlib import Path │
│ 4 │
│ ❱ 5 from sidemantic.workbench.app import SidequeryWorkbench │
│ 6 from sidemantic.workbench.validation_app import ValidationApp │
│ 7 │
│ 8 │
│ │
│ /Users/vsb/.cache/uv/archive-v0/_haf4OUi9pRiNcTAg_-Qz/lib/python3.13/site-packages/sidemantic/workbench/app.py:12 in <module> │
│ │
│ 9 from textual.reactive import reactive │
│ 10 from textual.widgets import Button, DataTable, Footer, Header, Label, Select, TextArea │
│ 11 from textual.widgets import Tree as TreeWidget │
│ ❱ 12 from textual_plotext import PlotextPlot │
│ 13 │
│ 14 from sidemantic import SemanticLayer, load_from_directory │
│ 15 │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'textual_plotext'
❯ uvx --with textual --with textual-plotext sidemantic workbench --demo
# This worked!
Hi there! I'm looking for projects to base a semantic layer on. Sidemantic looks very close to what we need. I've tried running the demo but have stumbled on a few issues:
uvx.