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.
Files changed (72) hide show
  1. {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/workflows/ci.yml +1 -1
  2. {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/workflows/docs.yml +1 -1
  3. {sqlprism-1.2.0 → sqlprism-1.2.1}/.gitignore +1 -0
  4. {sqlprism-1.2.0 → sqlprism-1.2.1}/PKG-INFO +4 -2
  5. {sqlprism-1.2.0 → sqlprism-1.2.1}/README.md +3 -1
  6. {sqlprism-1.2.0 → sqlprism-1.2.1}/pyproject.toml +1 -1
  7. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/cli.py +7 -1
  8. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/graph.py +618 -226
  9. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/indexer.py +249 -54
  10. sqlprism-1.2.1/src/sqlprism/core/naming.py +32 -0
  11. sqlprism-1.2.1/src/sqlprism/languages/dbt.py +1117 -0
  12. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/languages/sql.py +150 -22
  13. sqlprism-1.2.1/src/sqlprism/languages/sqlmesh.py +645 -0
  14. sqlprism-1.2.1/tests/test_federation.py +488 -0
  15. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_graph.py +343 -24
  16. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_graph_tools.py +246 -0
  17. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_indexer.py +1589 -2
  18. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_mcp_tools.py +80 -4
  19. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_renderers.py +1045 -7
  20. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_sql_parser.py +361 -0
  21. {sqlprism-1.2.0 → sqlprism-1.2.1}/uv.lock +1 -1
  22. sqlprism-1.2.0/src/sqlprism/languages/dbt.py +0 -372
  23. sqlprism-1.2.0/src/sqlprism/languages/sqlmesh.py +0 -324
  24. sqlprism-1.2.0/tests/test_federation.py +0 -144
  25. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/creating-branches-and-prs/PR-TEMPLATE.md +0 -0
  26. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/creating-branches-and-prs/SKILL.md +0 -0
  27. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/implementing-issues/AGENT-INSTRUCTIONS.md +0 -0
  28. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/implementing-issues/SKILL.md +0 -0
  29. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/implementing-issues/TASK-FORMAT.md +0 -0
  30. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/managing-project-releases/BDD-TEMPLATE.md +0 -0
  31. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/managing-project-releases/SKILL.md +0 -0
  32. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/reviewing-prs/COMMENT-TEMPLATE.md +0 -0
  33. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/reviewing-prs/REVIEWERS.md +0 -0
  34. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/reviewing-prs/SKILL.md +0 -0
  35. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/writing-graph-queries/EXAMPLES.md +0 -0
  36. {sqlprism-1.2.0 → sqlprism-1.2.1}/.claude/skills/writing-graph-queries/SKILL.md +0 -0
  37. {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/dependabot.yml +0 -0
  38. {sqlprism-1.2.0 → sqlprism-1.2.1}/.github/workflows/publish.yml +0 -0
  39. {sqlprism-1.2.0 → sqlprism-1.2.1}/CLAUDE.md +0 -0
  40. {sqlprism-1.2.0 → sqlprism-1.2.1}/LICENSE +0 -0
  41. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/conventions.md +0 -0
  42. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/dbt.md +0 -0
  43. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/graph.md +0 -0
  44. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/indexer.md +0 -0
  45. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/mcp-tools.md +0 -0
  46. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/sql-parser.md +0 -0
  47. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/sqlmesh.md +0 -0
  48. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/api/types.md +0 -0
  49. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/architecture/overview.md +0 -0
  50. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/architecture/schema.md +0 -0
  51. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/getting-started/configuration.md +0 -0
  52. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/getting-started/installation.md +0 -0
  53. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/cli.md +0 -0
  54. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/conventions.md +0 -0
  55. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/dbt.md +0 -0
  56. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/mcp-tools.md +0 -0
  57. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/guide/sqlmesh.md +0 -0
  58. {sqlprism-1.2.0 → sqlprism-1.2.1}/docs/index.md +0 -0
  59. {sqlprism-1.2.0 → sqlprism-1.2.1}/mkdocs.yml +0 -0
  60. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/__init__.py +0 -0
  61. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/__init__.py +0 -0
  62. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/conventions.py +0 -0
  63. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/core/mcp_tools.py +0 -0
  64. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/languages/__init__.py +0 -0
  65. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/languages/utils.py +0 -0
  66. {sqlprism-1.2.0 → sqlprism-1.2.1}/src/sqlprism/types.py +0 -0
  67. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/__init__.py +0 -0
  68. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_cli.py +0 -0
  69. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_config.py +0 -0
  70. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_conventions.py +0 -0
  71. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_languages.py +0 -0
  72. {sqlprism-1.2.0 → sqlprism-1.2.1}/tests/test_types.py +0 -0
@@ -41,7 +41,7 @@ jobs:
41
41
 
42
42
  - name: Upload coverage to Codecov
43
43
  if: matrix.python-version == '3.12'
44
- uses: codecov/codecov-action@v5
44
+ uses: codecov/codecov-action@v6
45
45
  with:
46
46
  files: coverage.xml
47
47
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -37,7 +37,7 @@ jobs:
37
37
  run: uv run mkdocs build
38
38
 
39
39
  - name: Upload Pages artifact
40
- uses: actions/upload-pages-artifact@v4
40
+ uses: actions/upload-pages-artifact@v5
41
41
  with:
42
42
  path: site/
43
43
 
@@ -1,6 +1,7 @@
1
1
  # Claude
2
2
  .claude/research/
3
3
  .claude/plans/
4
+ .claude/worktrees/
4
5
  .claude/settings.local.json
5
6
  .mcp.json
6
7
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlprism
3
- Version: 1.2.0
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 (510+ 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 (510+ 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.0"
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']}"