datasentry-core 0.2.0__tar.gz → 0.3.0__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 (82) hide show
  1. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/PKG-INFO +2 -2
  2. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/pyproject.toml +1 -1
  3. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/__init__.py +1 -1
  4. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/schema.py +5 -1
  5. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/.gitignore +0 -0
  6. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/README.md +0 -0
  7. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/__init__.py +0 -0
  8. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/base.py +0 -0
  9. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/csv.py +0 -0
  10. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/duckdb.py +0 -0
  11. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/errors.py +0 -0
  12. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/file_based.py +0 -0
  13. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/jsonl.py +0 -0
  14. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/parquet.py +0 -0
  15. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/registry.py +0 -0
  16. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/spec.py +0 -0
  17. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/xlsx.py +0 -0
  18. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/contracts/__init__.py +0 -0
  19. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/contracts/exporters.py +0 -0
  20. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/__init__.py +0 -0
  21. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/base.py +0 -0
  22. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/common.py +0 -0
  23. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/cross_field.py +0 -0
  24. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/cross_table.py +0 -0
  25. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/datetime.py +0 -0
  26. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/__init__.py +0 -0
  27. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/anomaly_ml.py +0 -0
  28. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/categorical.py +0 -0
  29. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/formula.py +0 -0
  30. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/missing.py +0 -0
  31. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/numeric.py +0 -0
  32. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/textual.py +0 -0
  33. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/uniqueness.py +0 -0
  34. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/missingness.py +0 -0
  35. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/runner.py +0 -0
  36. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/safe_eval.py +0 -0
  37. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/textual_variants.py +0 -0
  38. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/drift/__init__.py +0 -0
  39. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/drift/engine.py +0 -0
  40. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/__init__.py +0 -0
  41. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/base.py +0 -0
  42. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/duckdb.py +0 -0
  43. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/fusion.py +0 -0
  44. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/profiler.py +0 -0
  45. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/sql_guard.py +0 -0
  46. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/llm/provider.py +0 -0
  47. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/__init__.py +0 -0
  48. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/audit.py +0 -0
  49. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/contract.py +0 -0
  50. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/detector.py +0 -0
  51. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/drift.py +0 -0
  52. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/enums.py +0 -0
  53. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/evidence.py +0 -0
  54. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/feedback.py +0 -0
  55. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/fingerprint.py +0 -0
  56. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/issue.py +0 -0
  57. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/llm.py +0 -0
  58. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/profile.py +0 -0
  59. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/quality.py +0 -0
  60. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/repair.py +0 -0
  61. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/rules.py +0 -0
  62. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/scan.py +0 -0
  63. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/validation.py +0 -0
  64. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/plugins.py +0 -0
  65. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/privacy/redactor.py +0 -0
  66. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/repair/__init__.py +0 -0
  67. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/repair/engine.py +0 -0
  68. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/__init__.py +0 -0
  69. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/html.py +0 -0
  70. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/interactive.py +0 -0
  71. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/junit.py +0 -0
  72. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/markdown.py +0 -0
  73. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/sarif.py +0 -0
  74. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/rules/engine.py +0 -0
  75. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/__init__.py +0 -0
  76. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/engine.py +0 -0
  77. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/gate.py +0 -0
  78. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/quality.py +0 -0
  79. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/weights.py +0 -0
  80. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/__init__.py +0 -0
  81. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/paths.py +0 -0
  82. {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/store.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: datasentry-core
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: DataSentry AI core domain models and engine (detectors, fusion, scoring, repairs).
5
5
  License: Apache-2.0
6
6
  Keywords: data-observability,data-quality,duckdb
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "datasentry-core"
3
- version = "0.2.0"
3
+ version = "0.3.0"
4
4
  description = "DataSentry AI core domain models and engine (detectors, fusion, scoring, repairs)."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -108,4 +108,4 @@ __all__ = [
108
108
  "ValidationResult",
109
109
  ]
110
110
 
111
- __version__ = "0.2.0"
111
+ __version__ = "0.3.0"
@@ -13,7 +13,7 @@ from __future__ import annotations
13
13
  import sqlite3
14
14
 
15
15
  #: 当前 schema 版本(PRAGMA user_version)
16
- SCHEMA_VERSION = 4
16
+ SCHEMA_VERSION = 5
17
17
 
18
18
  _SCHEMA_DDL = """
19
19
  PRAGMA journal_mode = WAL;
@@ -309,6 +309,7 @@ CREATE TABLE IF NOT EXISTS scheduled_jobs (
309
309
  enabled INTEGER NOT NULL DEFAULT 1,
310
310
  retry_attempts INTEGER NOT NULL DEFAULT 0,
311
311
  webhook_url TEXT,
312
+ gate_quality_min REAL,
312
313
  status TEXT NOT NULL DEFAULT 'idle'
313
314
  CHECK (status IN ('idle','queued','running','dead')),
314
315
  next_run_at TEXT NOT NULL,
@@ -383,5 +384,8 @@ def migrate(conn: sqlite3.Connection) -> None:
383
384
  # v2 → v3:PII 加密映射(Step 48):pii_mappings 表 + 审计列
384
385
  if version < 3:
385
386
  _ensure_column(conn, "llm_invocations", "pii_session_id", "pii_session_id TEXT")
387
+ # v4 → v5:调度质量门禁(Step 52):scheduled_jobs.gate_quality_min
388
+ if version < 5:
389
+ _ensure_column(conn, "scheduled_jobs", "gate_quality_min", "gate_quality_min REAL")
386
390
  conn.execute(f"PRAGMA user_version = {SCHEMA_VERSION}")
387
391
  conn.commit()