Commit 71ea07f
Quack mode (#174)
Solves #32. Blog post incoming!
I also introduced a `.lea_cache` to cache the SQLGlot tokenization
process (~6s for Carbonfact's scripts). It's what SQLMesh does too. This
combined with deferring heavy unnecessary imports makes the CLI feel
instant. And I moved from pre-commit to prek and fixed a lot of code
quality issues.
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds Quack mode to run most of the DAG locally on DuckLake with
automatic SQL transpilation, only using the native warehouse (e.g.
BigQuery) for scripts with external dependencies. Also adds a
`.lea_cache` to cache SQLGlot parsing for faster DAG builds and switches
tooling to `prek`.
- New Features
- Quack mode (`--quack`): classifies scripts, runs eligible ones on
DuckLake, and transpiles SQL via `sqlglot`; only external-dependent
scripts (and their ancestors) run on the native warehouse.
- Added `DuckLake` warehouse support, dialect attach/setup, and robust
transpilation/classification logic with extensive tests.
- Script parsing cache (`.lea_cache`) to store dependencies; includes
tests and a `examples/quack` demo.
- Dependencies
- Replace pre-commit with `prek`; CI updated to `uv run prek run
--all-files`. Add `ruff` and `ty` hooks.
- Bump to version 0.17.0 and relax `sqlglot` pin; minor README updates.
<sup>Written for commit d5414d6.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 04a9b98 commit 71ea07f
File tree
29 files changed
+2738
-510
lines changed- .github/workflows
- examples
- diff/views
- dev/staging
- prod/staging
- quack
- scripts
- analytics
- core
- lea
29 files changed
+2738
-510
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | 1 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
| 2 | + | |
13 | 3 | | |
14 | 4 | | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
15 | 9 | | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
0 commit comments