sqlprism 1.2.0__tar.gz → 1.2.1__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.
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/workflows/ci.yml +1 -1
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/workflows/docs.yml +1 -1
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.gitignore +1 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/PKG-INFO +4 -2
- {sqlprism-1.2.0 → sqlprism-1.2.1}/README.md +3 -1
- {sqlprism-1.2.0 → sqlprism-1.2.1}/pyproject.toml +1 -1
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/cli.py +7 -1
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/graph.py +618 -226
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/indexer.py +249 -54
- sqlprism-1.2.1/src/sqlprism/core/naming.py +32 -0
- sqlprism-1.2.1/src/sqlprism/languages/dbt.py +1117 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/languages/sql.py +150 -22
- sqlprism-1.2.1/src/sqlprism/languages/sqlmesh.py +645 -0
- sqlprism-1.2.1/tests/test_federation.py +488 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_graph.py +343 -24
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_graph_tools.py +246 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_indexer.py +1589 -2
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_mcp_tools.py +80 -4
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_renderers.py +1045 -7
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_sql_parser.py +361 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/uv.lock +1 -1
- sqlprism-1.2.0/src/sqlprism/languages/dbt.py +0 -372
- sqlprism-1.2.0/src/sqlprism/languages/sqlmesh.py +0 -324
- sqlprism-1.2.0/tests/test_federation.py +0 -144
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/creating-branches-and-prs/PR-TEMPLATE.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/creating-branches-and-prs/SKILL.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/implementing-issues/AGENT-INSTRUCTIONS.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/implementing-issues/SKILL.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/implementing-issues/TASK-FORMAT.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/managing-project-releases/BDD-TEMPLATE.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/managing-project-releases/SKILL.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/reviewing-prs/COMMENT-TEMPLATE.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/reviewing-prs/REVIEWERS.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/reviewing-prs/SKILL.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/writing-graph-queries/EXAMPLES.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/writing-graph-queries/SKILL.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/dependabot.yml +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/workflows/publish.yml +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/CLAUDE.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/LICENSE +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/conventions.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/dbt.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/graph.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/indexer.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/mcp-tools.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/sql-parser.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/sqlmesh.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/types.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/architecture/overview.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/architecture/schema.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/getting-started/configuration.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/getting-started/installation.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/cli.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/conventions.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/dbt.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/mcp-tools.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/sqlmesh.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/index.md +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/mkdocs.yml +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/__init__.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/__init__.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/conventions.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/mcp_tools.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/languages/__init__.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/languages/utils.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/types.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/__init__.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_cli.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_config.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_conventions.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_languages.py +0 -0
- {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_types.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlprism
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: SQL codebase indexer with column-level lineage, impact analysis, and MCP server support
|
|
5
5
|
Project-URL: Homepage, https://github.com/darkcofy/sqlprism
|
|
6
6
|
Project-URL: Documentation, https://darkcofy.github.io/sqlprism/
|
|
@@ -74,6 +74,8 @@ uv run sqlprism reindex # index plain SQL repos
|
|
|
74
74
|
|
|
75
75
|
For [dbt](https://www.getdbt.com/) and [SQLMesh](https://sqlmesh.com/) projects, use `reindex-dbt` and `reindex-sqlmesh` respectively. See the [CLI guide](https://darkcofy.github.io/sqlprism/guide/cli/) for full options.
|
|
76
76
|
|
|
77
|
+
> **Prerequisite:** dbt and SQLMesh are **not** dependencies of sqlprism. The renderers shell out to `dbt compile` / `sqlmesh` inside the target project's own virtualenv (via `uv run` by default). Install the renderer in that project — for example `uv add dbt-core dbt-<adapter>` or `uv add sqlmesh` — before running `reindex-dbt` / `reindex-sqlmesh`. If the renderer is missing, sqlprism will raise a clear error pointing at the project directory.
|
|
78
|
+
|
|
77
79
|
### 3. Connect your MCP client
|
|
78
80
|
|
|
79
81
|
**Claude Code:**
|
|
@@ -303,7 +305,7 @@ SQLPrism optionally integrates with [DuckPGQ](https://github.com/cwida/duckpgq)
|
|
|
303
305
|
|
|
304
306
|
```bash
|
|
305
307
|
uv sync
|
|
306
|
-
uv run pytest # run tests (
|
|
308
|
+
uv run pytest # run tests (630+ tests)
|
|
307
309
|
uv run pytest --cov=sqlprism # run with coverage report
|
|
308
310
|
uv run pytest --cov=sqlprism --cov-report=html:coverage_html # HTML report
|
|
309
311
|
```
|
|
@@ -46,6 +46,8 @@ uv run sqlprism reindex # index plain SQL repos
|
|
|
46
46
|
|
|
47
47
|
For [dbt](https://www.getdbt.com/) and [SQLMesh](https://sqlmesh.com/) projects, use `reindex-dbt` and `reindex-sqlmesh` respectively. See the [CLI guide](https://darkcofy.github.io/sqlprism/guide/cli/) for full options.
|
|
48
48
|
|
|
49
|
+
> **Prerequisite:** dbt and SQLMesh are **not** dependencies of sqlprism. The renderers shell out to `dbt compile` / `sqlmesh` inside the target project's own virtualenv (via `uv run` by default). Install the renderer in that project — for example `uv add dbt-core dbt-<adapter>` or `uv add sqlmesh` — before running `reindex-dbt` / `reindex-sqlmesh`. If the renderer is missing, sqlprism will raise a clear error pointing at the project directory.
|
|
50
|
+
|
|
49
51
|
### 3. Connect your MCP client
|
|
50
52
|
|
|
51
53
|
**Claude Code:**
|
|
@@ -275,7 +277,7 @@ SQLPrism optionally integrates with [DuckPGQ](https://github.com/cwida/duckpgq)
|
|
|
275
277
|
|
|
276
278
|
```bash
|
|
277
279
|
uv sync
|
|
278
|
-
uv run pytest # run tests (
|
|
280
|
+
uv run pytest # run tests (630+ tests)
|
|
279
281
|
uv run pytest --cov=sqlprism # run with coverage report
|
|
280
282
|
uv run pytest --cov=sqlprism --cov-report=html:coverage_html # HTML report
|
|
281
283
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sqlprism"
|
|
7
|
-
version = "1.2.
|
|
7
|
+
version = "1.2.1"
|
|
8
8
|
description = "SQL codebase indexer with column-level lineage, impact analysis, and MCP server support"
|
|
9
9
|
license = "Apache-2.0"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -326,8 +326,14 @@ def reindex_sqlmesh(
|
|
|
326
326
|
dialect=dialect,
|
|
327
327
|
sqlmesh_command=sqlmesh_command,
|
|
328
328
|
)
|
|
329
|
+
skipped = stats.get('models_skipped', 0)
|
|
330
|
+
removed = stats.get('models_removed', 0)
|
|
331
|
+
cached = stats.get('render_cached', False)
|
|
332
|
+
skip_info = f", skipped={skipped}" if skipped else ""
|
|
333
|
+
remove_info = f", removed={removed}" if removed else ""
|
|
334
|
+
cache_info = " (render cached)" if cached else ""
|
|
329
335
|
click.echo(
|
|
330
|
-
f" models={stats['models_rendered']}, "
|
|
336
|
+
f" models={stats['models_rendered']}{skip_info}{remove_info}{cache_info}, "
|
|
331
337
|
f"nodes={stats['nodes_added']}, "
|
|
332
338
|
f"edges={stats['edges_added']}, "
|
|
333
339
|
f"column_usage={stats['column_usage_added']}"
|