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.
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/PKG-INFO +2 -2
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/pyproject.toml +1 -1
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/__init__.py +1 -1
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/schema.py +5 -1
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/.gitignore +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/README.md +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/base.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/csv.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/duckdb.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/errors.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/file_based.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/jsonl.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/parquet.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/registry.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/spec.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/xlsx.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/contracts/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/contracts/exporters.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/base.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/common.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/cross_field.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/cross_table.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/datetime.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/anomaly_ml.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/categorical.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/formula.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/missing.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/numeric.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/textual.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/uniqueness.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/missingness.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/runner.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/safe_eval.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/textual_variants.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/drift/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/drift/engine.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/base.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/duckdb.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/fusion.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/profiler.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/engine/sql_guard.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/llm/provider.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/audit.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/contract.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/detector.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/drift.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/enums.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/evidence.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/feedback.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/fingerprint.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/issue.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/llm.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/profile.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/quality.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/repair.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/rules.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/scan.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/models/validation.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/plugins.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/privacy/redactor.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/repair/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/repair/engine.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/html.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/interactive.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/junit.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/markdown.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/sarif.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/rules/engine.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/engine.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/gate.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/quality.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/scoring/weights.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/__init__.py +0 -0
- {datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/storage/paths.py +0 -0
- {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.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: datasentry-core
|
|
3
|
-
Version: 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
|
|
@@ -13,7 +13,7 @@ from __future__ import annotations
|
|
|
13
13
|
import sqlite3
|
|
14
14
|
|
|
15
15
|
#: 当前 schema 版本(PRAGMA user_version)
|
|
16
|
-
SCHEMA_VERSION =
|
|
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()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/connectors/file_based.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/cross_field.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/cross_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/__init__.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/anomaly_ml.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/categorical.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/formula.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/missing.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/numeric.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/textual.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/initial/uniqueness.py
RENAMED
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/missingness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/detectors/textual_variants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datasentry_core-0.2.0 → datasentry_core-0.3.0}/src/datasentry_core/reporting/interactive.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|