Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat/interactive catalog #657

Merged
merged 21 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4a5069a
wip: InteractiveCatalogItem type and duckdb impl
tconbeer Aug 22, 2024
a3a7b78
feat: add context menu and driver impl
tconbeer Aug 26, 2024
f26b3e1
feat: add bindings for showing/hiding context menu
tconbeer Aug 26, 2024
cae0815
refactor: add connection to catalogitem; improve duckdb impl
tconbeer Aug 28, 2024
de3f985
fix: move data_catalog.py; fix runtime errors
tconbeer Aug 28, 2024
8aac2ed
refactor: split tree classes into different modules
tconbeer Aug 28, 2024
58e370f
feat: add lazy-loading for catalogs, with DuckDB impl
tconbeer Aug 29, 2024
eb17874
feat: add duckdb interactions; fix: option list display
tconbeer Aug 31, 2024
490759a
fix: render children for static CatalogItem nodes
tconbeer Aug 31, 2024
50f5d27
fix: add desc for _execute_interaction worker for perf in dev mode
tconbeer Aug 31, 2024
26814f8
feat: add sqlite impl
tconbeer Sep 30, 2024
123bf42
fix: update tests to not wait for queue worker
tconbeer Sep 30, 2024
6a6654e
fix: prefetch top children in catalog; fix s3 mock
tconbeer Sep 30, 2024
8ce16f0
fix: reimplement basic completer flow for lazy catalogs
tconbeer Oct 1, 2024
203419f
fix: update data catalog tests
tconbeer Oct 1, 2024
03fe0ed
fix: add test for context menu
tconbeer Oct 1, 2024
e7a23dd
fix: update snapshots for history screen and s3 tree
tconbeer Oct 1, 2024
4dae54d
fix: suppress workercancelled in wait helper
tconbeer Oct 1, 2024
5c862c4
fix: resize context menu test, move to another module
tconbeer Oct 1, 2024
556ef2a
fix: try these snapshots instead
tconbeer Oct 9, 2024
4e9be75
fix: use normalized svgs
tconbeer Oct 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.0
rev: v0.6.1
hooks:
- id: ruff-format
- id: ruff
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

### Features

- Harlequin's Data Catalog is now interactive! Adapters can define interactions on catalog nodes, which can be selected via a context menu by right-clicking on nodes in the context menu or pressing `.` (this binding is configurable via the `data_catalog.show_context_menu` action).
- For adapters that support it, Harlequin's Data Catalog now loads lazily. This should dramatically improve Data Catalog load time for catalogs with thousands of nodes. The Data Catalog is no longer cached.
- The DuckDB and SQLite adapters now support lazy-loading and a wide range of interactions, including `use`ing database and schemas, previewing data, dropping objects, and showing DDL for objects.


## [1.24.1] - 2024-09-25

### Bug Fixes
Expand Down
60 changes: 1 addition & 59 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions src/harlequin/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
ResultsTable,
ResultsViewer,
)
from harlequin.components.data_catalog import ContextMenu

if TYPE_CHECKING:
from textual.widget import Widget
Expand Down Expand Up @@ -225,6 +226,10 @@ class Action:
"data_catalog.focus_results_viewer": Action(
target=DataCatalog, action="focus_results_viewer"
),
"data_catalog.show_context_menu": Action(
target=HarlequinTree, action="show_context_menu", show=True
),
"data_catalog.hide_context_menu": Action(target=ContextMenu, action="hide"),
#######################################################
# ResultsViewer ACTIONS
#######################################################
Expand Down
Loading
Loading