sql-glider 0.1.24__tar.gz → 0.1.25__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sql_glider-0.1.24 → sql_glider-0.1.25}/PKG-INFO +1 -1
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/docs/graph-lineage.md +4 -0
- sql_glider-0.1.25/docs/docs/static/plotly-dash-example.png +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/examples/plotly_viewer.py +12 -3
- sql_glider-0.1.25/graph.json +5319 -0
- sql_glider-0.1.25/lineage.json +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/_version.py +2 -2
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/cli.py +1 -1
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/diagram_formatters.py +106 -26
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_diagram_formatters.py +101 -17
- {sql_glider-0.1.24 → sql_glider-0.1.25}/.github/workflows/ci.yml +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/.github/workflows/docs.yml +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/.github/workflows/publish.yml +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/.gitignore +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/.python-version +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/ARCHITECTURE.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/CLAUDE.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/LICENSE +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/README.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/.github/workflows/docs.yml +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/docs/catalogs.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/docs/index.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/docs/static/sqlglider-logo-transparent.png +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/docs/templating.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/docs/zensical.toml +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-05-column-level-lineage.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-05-reverse-lineage.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-06-config-file-support.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-06-graph-lineage.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-06-unify-single-multi-query.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-07-sample-data-model.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-07-sql-templating.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-08-tables-command.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-09-graph-query-paths.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-13-dissect-command.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2025-12-14-tables-pull-command.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-25-fix-union-lineage-chain.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-26-file-scoped-schema-context.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-28-sparksql-table-extraction.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-29-no-star-flag.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-29-resolve-schema.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-29-schema-pruning-optimization.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-01-29-tables-scrape-command.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/plans/2026-02-02-diagram-output-formats.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/pyproject.toml +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/README.md +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/business/expire_dim_customer.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/business/load_fact_orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/business/load_fact_payments.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/business/merge_dim_customer.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/business/merge_dim_product.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/business/update_dim_customer_metrics.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/complex/conditional_merge.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/complex/cte_insert.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/complex/multi_table_transform.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/dim_customer.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/dim_product.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/fact_orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/fact_payments.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/raw_addresses.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/raw_customers.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/raw_order_items.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/raw_orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/raw_payments.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/raw_products.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/stg_customers.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/stg_orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/stg_payments.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/ddl/stg_products.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/incremental/incr_fact_orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/incremental/incr_fact_payments.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/incremental/incr_pres_sales_summary.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/maintenance/delete_expired_customers.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/maintenance/update_product_status.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/presentation/load_pres_customer_360.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/presentation/load_pres_customer_cohort.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/presentation/load_pres_product_performance.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/presentation/load_pres_sales_summary.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/staging/load_stg_customers.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/staging/load_stg_orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/staging/load_stg_payments.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sample_data_model/staging/load_stg_products.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/sqlglider.toml.example +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/catalog/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/catalog/base.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/catalog/databricks.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/catalog/registry.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/dissection/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/dissection/analyzer.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/dissection/formatters.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/dissection/models.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/global_models.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/builder.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/formatters.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/merge.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/models.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/query.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/graph/serialization.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/lineage/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/lineage/analyzer.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/lineage/formatters.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/schema/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/schema/extractor.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/templating/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/templating/base.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/templating/jinja.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/templating/registry.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/templating/variables.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/utils/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/utils/config.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/utils/file_utils.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/src/sqlglider/utils/schema.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/multi_file_queries/analytics_pipeline.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/multi_file_queries/analytics_pipeline_union_merge.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/multi_file_queries/customers.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/multi_file_queries/orders.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/multi_file_queries/reports.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/multi_file_queries/view_based_merge.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_cte.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_cte_query.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_cte_view_star.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_generated_column_query.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_multi.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_multi_query.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_single_query.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_subquery.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_tables.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_view.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/original_queries/test_view_window_cte.sql +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/fixtures/sample_manifest.csv +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/catalog/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/catalog/test_base.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/catalog/test_databricks.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/catalog/test_registry.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/dissection/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/dissection/test_analyzer.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/dissection/test_formatters.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/dissection/test_models.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_builder.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_formatters.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_merge.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_models.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_query.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/graph/test_serialization.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/lineage/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/lineage/test_analyzer.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/lineage/test_formatters.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/schema/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/schema/test_extractor.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/templating/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/templating/test_base.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/templating/test_jinja.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/templating/test_registry.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/templating/test_variables.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/test_cli.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/utils/__init__.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/utils/test_config.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/utils/test_file_utils.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/tests/sqlglider/utils/test_schema.py +0 -0
- {sql_glider-0.1.24 → sql_glider-0.1.25}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sql-glider
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.25
|
|
4
4
|
Summary: SQL Utility Toolkit for better understanding, use, and governance of your queries in a native environment.
|
|
5
5
|
Project-URL: Homepage, https://github.com/rycowhi/sql-glider/
|
|
6
6
|
Project-URL: Repository, https://github.com/rycowhi/sql-glider/
|
|
@@ -356,6 +356,10 @@ The Plotly output uses the same color scheme as Mermaid and DOT diagrams:
|
|
|
356
356
|
| Teal | Root node (no upstream dependencies) |
|
|
357
357
|
| Violet | Leaf node (no downstream consumers) |
|
|
358
358
|
|
|
359
|
+
See an example of a plot loaded into Dash below:
|
|
360
|
+
|
|
361
|
+

|
|
362
|
+
|
|
359
363
|
### Rendering Diagrams
|
|
360
364
|
|
|
361
365
|
**Mermaid:**
|
|
Binary file
|
|
@@ -33,13 +33,19 @@ def load_figure(source: str | Path | None = None) -> dict:
|
|
|
33
33
|
# Read from stdin
|
|
34
34
|
if sys.stdin.isatty():
|
|
35
35
|
print("Usage: python plotly_viewer.py <lineage.json>", file=sys.stderr)
|
|
36
|
-
print(
|
|
36
|
+
print(
|
|
37
|
+
" or: sqlglider graph visualize graph.json -f plotly | python plotly_viewer.py",
|
|
38
|
+
file=sys.stderr,
|
|
39
|
+
)
|
|
37
40
|
sys.exit(1)
|
|
38
41
|
content = sys.stdin.read()
|
|
39
42
|
if not content.strip():
|
|
40
43
|
print("Error: No input received from stdin", file=sys.stderr)
|
|
41
44
|
print("Note: On Windows, piping may not work reliably.", file=sys.stderr)
|
|
42
|
-
print(
|
|
45
|
+
print(
|
|
46
|
+
"Try: sqlglider graph query ... -f plotly -o output.json",
|
|
47
|
+
file=sys.stderr,
|
|
48
|
+
)
|
|
43
49
|
print("Then: python plotly_viewer.py output.json", file=sys.stderr)
|
|
44
50
|
sys.exit(1)
|
|
45
51
|
else:
|
|
@@ -55,7 +61,10 @@ def load_figure(source: str | Path | None = None) -> dict:
|
|
|
55
61
|
except UnicodeDecodeError:
|
|
56
62
|
continue
|
|
57
63
|
else:
|
|
58
|
-
print(
|
|
64
|
+
print(
|
|
65
|
+
"Error: Could not decode file with UTF-8 or UTF-16 encoding",
|
|
66
|
+
file=sys.stderr,
|
|
67
|
+
)
|
|
59
68
|
sys.exit(1)
|
|
60
69
|
|
|
61
70
|
try:
|