datasentry-core 0.3.0__tar.gz → 0.4.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.3.0 → datasentry_core-0.4.0}/PKG-INFO +1 -1
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/pyproject.toml +1 -1
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/__init__.py +1 -1
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/storage/schema.py +8 -2
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/.gitignore +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/README.md +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/base.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/csv.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/duckdb.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/errors.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/file_based.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/jsonl.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/parquet.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/registry.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/spec.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/connectors/xlsx.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/contracts/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/contracts/exporters.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/base.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/common.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/cross_field.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/cross_table.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/datetime.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/anomaly_ml.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/categorical.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/formula.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/missing.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/numeric.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/textual.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/uniqueness.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/missingness.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/runner.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/safe_eval.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/textual_variants.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/drift/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/drift/engine.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/engine/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/engine/base.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/engine/duckdb.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/engine/fusion.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/engine/profiler.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/engine/sql_guard.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/llm/provider.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/audit.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/contract.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/detector.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/drift.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/enums.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/evidence.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/feedback.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/fingerprint.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/issue.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/llm.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/profile.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/quality.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/repair.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/rules.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/scan.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/models/validation.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/plugins.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/privacy/redactor.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/repair/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/repair/engine.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/reporting/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/reporting/html.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/reporting/interactive.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/reporting/junit.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/reporting/markdown.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/reporting/sarif.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/rules/engine.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/scoring/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/scoring/engine.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/scoring/gate.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/scoring/quality.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/scoring/weights.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/storage/__init__.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/storage/paths.py +0 -0
- {datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/storage/store.py +0 -0
|
@@ -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 = 6
|
|
17
17
|
|
|
18
18
|
_SCHEMA_DDL = """
|
|
19
19
|
PRAGMA journal_mode = WAL;
|
|
@@ -329,7 +329,9 @@ CREATE TABLE IF NOT EXISTS job_runs (
|
|
|
329
329
|
scan_run_id TEXT,
|
|
330
330
|
summary TEXT,
|
|
331
331
|
error TEXT,
|
|
332
|
-
webhook_at TEXT
|
|
332
|
+
webhook_at TEXT,
|
|
333
|
+
file_hash TEXT,
|
|
334
|
+
skipped INTEGER NOT NULL DEFAULT 0
|
|
333
335
|
);
|
|
334
336
|
|
|
335
337
|
CREATE INDEX IF NOT EXISTS idx_scan_runs_dataset ON scan_runs(dataset_id);
|
|
@@ -387,5 +389,9 @@ def migrate(conn: sqlite3.Connection) -> None:
|
|
|
387
389
|
# v4 → v5:调度质量门禁(Step 52):scheduled_jobs.gate_quality_min
|
|
388
390
|
if version < 5:
|
|
389
391
|
_ensure_column(conn, "scheduled_jobs", "gate_quality_min", "gate_quality_min REAL")
|
|
392
|
+
# v5 → v6:变更感知增量调度(Step 53):job_runs.file_hash + skipped
|
|
393
|
+
if version < 6:
|
|
394
|
+
_ensure_column(conn, "job_runs", "file_hash", "file_hash TEXT")
|
|
395
|
+
_ensure_column(conn, "job_runs", "skipped", "skipped INTEGER NOT NULL DEFAULT 0")
|
|
390
396
|
conn.execute(f"PRAGMA user_version = {SCHEMA_VERSION}")
|
|
391
397
|
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.3.0 → datasentry_core-0.4.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.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/cross_field.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/cross_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/__init__.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/anomaly_ml.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/categorical.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/formula.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/missing.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/numeric.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/textual.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/initial/uniqueness.py
RENAMED
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.0}/src/datasentry_core/detectors/missingness.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{datasentry_core-0.3.0 → datasentry_core-0.4.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.3.0 → datasentry_core-0.4.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
|