Skip to content

Commit 193c2e1

Browse files
cpsievertclaude
andcommitted
feat(pkg-py): add multi-table support
Add the ability to register multiple tables with a QueryChat instance, enabling cross-table queries and per-table state management. - **Storage**: Change from single `_data_source` to `_data_sources` dict - **API**: Add `table_names()`, `table()`, `add_table()`, `remove_table()` methods - **TableAccessor**: New class for per-table access (`qc.table("name").df()`) - **Backwards compatible**: Single-table usage works unchanged - `update_dashboard` and `reset_dashboard` now include table name parameter - `tool_query` supports querying across multiple tables - Updated tool prompts to guide LLM on multi-table operations - Schema section now includes all registered tables - Added relationship hints for JOINs - Table descriptions can be provided for LLM context All frameworks (Shiny, Dash, Streamlit, Gradio) updated to work with the new dict-based storage while maintaining single-table behavior. - Added 22 new tests for multi-table functionality - Updated existing tests for new internal structure Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 888b08f commit 193c2e1

21 files changed

+3297
-72
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ animation.screenflow/
33
README_files/
44
README.html
55
.DS_Store
6+
test-results/
67
python-package/examples/titanic.db
78
.quarto
89
*.db

0 commit comments

Comments
 (0)