sqlquality 0.4.0__tar.gz → 0.4.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 (108) hide show
  1. {sqlquality-0.4.0 → sqlquality-0.4.1}/PKG-INFO +2 -2
  2. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/__init__.py +1 -1
  3. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_redaction.py +8 -8
  4. {sqlquality-0.4.0 → sqlquality-0.4.1}/.gitignore +0 -0
  5. {sqlquality-0.4.0 → sqlquality-0.4.1}/.pre-commit-hooks.yaml +0 -0
  6. {sqlquality-0.4.0 → sqlquality-0.4.1}/LICENSE +0 -0
  7. {sqlquality-0.4.0 → sqlquality-0.4.1}/README.md +0 -0
  8. {sqlquality-0.4.0 → sqlquality-0.4.1}/pyproject.toml +0 -0
  9. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/adapters/__init__.py +0 -0
  10. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/adapters/base.py +0 -0
  11. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/adapters/postgres.py +0 -0
  12. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/adapters/redshift.py +0 -0
  13. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/antipatterns.py +0 -0
  14. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/changeset.py +0 -0
  15. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/cli.py +0 -0
  16. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/complexity.py +0 -0
  17. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/config.py +0 -0
  18. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/dbtproject.py +0 -0
  19. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/delta.py +0 -0
  20. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/dialects.py +0 -0
  21. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/gate.py +0 -0
  22. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/keys.py +0 -0
  23. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/linter.py +0 -0
  24. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/llm.py +0 -0
  25. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/models.py +0 -0
  26. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/py.typed +0 -0
  27. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/report.py +0 -0
  28. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/sqlast.py +0 -0
  29. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/verify.py +0 -0
  30. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/__init__.py +0 -0
  31. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/aggregate.py +0 -0
  32. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/base.py +0 -0
  33. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/connection.py +0 -0
  34. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/dbt.py +0 -0
  35. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/extract.py +0 -0
  36. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/fingerprint.py +0 -0
  37. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/postgres.py +0 -0
  38. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/profiles.py +0 -0
  39. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/redshift.py +0 -0
  40. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/secrets.py +0 -0
  41. {sqlquality-0.4.0 → sqlquality-0.4.1}/src/sqlquality/workload/session.py +0 -0
  42. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/manifest_v12.json +0 -0
  43. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/disappeared.after.json +0 -0
  44. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/disappeared.before.json +0 -0
  45. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/improved.after.json +0 -0
  46. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/improved.before.json +0 -0
  47. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/limit_truncated.after.json +0 -0
  48. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/limit_truncated.before.json +0 -0
  49. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/not_applied.after.json +0 -0
  50. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/not_applied.before.json +0 -0
  51. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/regenerate.py +0 -0
  52. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/regressed.after.json +0 -0
  53. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/regressed.before.json +0 -0
  54. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/unchanged_nested.after.json +0 -0
  55. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/fixtures/verify/unchanged_nested.before.json +0 -0
  56. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/__init__.py +0 -0
  57. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/conftest.py +0 -0
  58. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/docker-compose.yml +0 -0
  59. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_advise_live.py +0 -0
  60. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_introspection_live.py +0 -0
  61. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_redshift_connect_live.py +0 -0
  62. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_redshift_introspection_bindable_live.py +0 -0
  63. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_verify_degraded_after_live.py +0 -0
  64. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_verify_headline_live.py +0 -0
  65. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_verify_live.py +0 -0
  66. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/integration/test_verify_redaction_live.py +0 -0
  67. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_adapters_postgres.py +0 -0
  68. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_adapters_redshift.py +0 -0
  69. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_advise_cli.py +0 -0
  70. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_advise_physical_state_wiring.py +0 -0
  71. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_antipatterns.py +0 -0
  72. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_changeset.py +0 -0
  73. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_check_gate.py +0 -0
  74. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_ci_integration_job.py +0 -0
  75. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_cli.py +0 -0
  76. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_complexity.py +0 -0
  77. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_config.py +0 -0
  78. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_dbtproject.py +0 -0
  79. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_delta.py +0 -0
  80. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_dialects.py +0 -0
  81. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_gate.py +0 -0
  82. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_integration_fixture.py +0 -0
  83. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_keys.py +0 -0
  84. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_lint_cli.py +0 -0
  85. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_linter.py +0 -0
  86. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_llm.py +0 -0
  87. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_llm_anthropic.py +0 -0
  88. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_models.py +0 -0
  89. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_perf_cli.py +0 -0
  90. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_perf_suggest.py +0 -0
  91. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_precommit_hooks.py +0 -0
  92. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_report.py +0 -0
  93. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_report_markdown.py +0 -0
  94. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_sqlast.py +0 -0
  95. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_verify.py +0 -0
  96. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_verify_cli.py +0 -0
  97. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_verify_goldens.py +0 -0
  98. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_aggregate.py +0 -0
  99. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_connection.py +0 -0
  100. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_dbt.py +0 -0
  101. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_extract.py +0 -0
  102. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_fingerprint.py +0 -0
  103. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_postgres.py +0 -0
  104. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_redshift.py +0 -0
  105. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_redshift_rules.py +0 -0
  106. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_rules.py +0 -0
  107. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_secrets.py +0 -0
  108. {sqlquality-0.4.0 → sqlquality-0.4.1}/tests/test_workload_session.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: sqlquality
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Summary: Measure dbt model performance and complexity, and gate changes on the delta.
5
5
  Project-URL: Homepage, https://github.com/hanslemm/sqlquality
6
6
  Project-URL: Issues, https://github.com/hanslemm/sqlquality/issues
@@ -1,3 +1,3 @@
1
1
  """sqlquality — measure dbt model performance and complexity."""
2
2
 
3
- __version__ = "0.4.0"
3
+ __version__ = "0.4.1"
@@ -16,7 +16,7 @@ runner = CliRunner()
16
16
  #: Distinctive strings that must never appear downstream.
17
17
  #:
18
18
  #: Be honest about which of these currently discriminate. Measured by disabling
19
- #: `redact_tree` and sweeping every surface: only `hans@betterdoc.de` leaks, because it
19
+ #: `redact_tree` and sweeping every surface: only `someone@example.com` leaks, because it
20
20
  #: is the only one reaching ADV005's evidence — the single proposal type that copies query
21
21
  #: text into output. The other three enter via HOT_QUERY, whose proposals carry column
22
22
  #: names, roles and counts but never `stat.sql`, so they cannot leak today whatever
@@ -25,15 +25,15 @@ runner = CliRunner()
25
25
  #: They stay in the list deliberately, as regression insurance against a future proposal
26
26
  #: type that widens what evidence carries. But they are future-proofing, not live
27
27
  #: trip-wires, and a reader should not mistake four passing checks for four proofs.
28
- SECRETS = ("patient-4711", "hans@betterdoc.de", "DE89370400440532013000", "1990-04-17")
28
+ SECRETS = ("ticket-4711", "someone@example.com", "DE89370400440532013000", "2001-02-03")
29
29
 
30
30
  HOT_QUERY = (
31
31
  "select id, note from orders "
32
32
  "where status = 'shipped' "
33
- "and customer_email = 'hans@betterdoc.de' "
34
- "and reference = 'patient-4711' "
33
+ "and customer_email = 'someone@example.com' "
34
+ "and reference = 'ticket-4711' "
35
35
  "and iban = 'DE89370400440532013000' "
36
- "and created_at > '1990-04-17' "
36
+ "and created_at > '2001-02-03' "
37
37
  "order by created_at desc"
38
38
  )
39
39
 
@@ -57,8 +57,8 @@ HOT_QUERY = (
57
57
  #: `--keep-literals` test below is the canary that will tell you: it asserts a secret *is*
58
58
  #: retained with the opt-in, which can only hold if some output surface actually carries
59
59
  #: query text. If that test starts failing, this scenario has gone vacuous.
60
- LIKE_QUERY = "select note from orders where note like '%hans@betterdoc.de%'"
61
- STAR_QUERY = "select * from wide_events where actor_email = 'hans@betterdoc.de'"
60
+ LIKE_QUERY = "select note from orders where note like '%someone@example.com%'"
61
+ STAR_QUERY = "select * from wide_events where actor_email = 'someone@example.com'"
62
62
 
63
63
  COLUMNS = [
64
64
  ("public", "orders", "id", "integer"),
@@ -182,4 +182,4 @@ def test_keep_literals_is_the_only_way_to_retain_values(stubbed):
182
182
  payload = json.loads(result.stdout)
183
183
  assert payload["redacted"] is False
184
184
  # With the opt-in, values are retained — proving the default was doing real work.
185
- assert "hans@betterdoc.de" in json.dumps(payload)
185
+ assert "someone@example.com" in json.dumps(payload)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes