Merge pull request 'cli/integrity' (#33) from cli/integrity into develop
All checks were successful
Mypy / mypy (push) Successful in 1m13s
Pytest / pytest (3.12) (push) Successful in 1m19s
Pytest / pytest (3.13) (push) Successful in 1m14s
Pytest / pytest (3.14) (push) Successful in 1m14s
Ruff / ruff (push) Successful in 1m5s

Reviewed-on: https://www.kuhl-mann.de/git/git/jkuhl/corrlib/pulls/33
This commit is contained in:
Justus Kuhlmann 2026-04-17 16:57:18 +02:00
commit 4411f63984
2 changed files with 18 additions and 3 deletions

View file

@ -1,6 +1,7 @@
from typing import Optional
import typer
from corrlib import __app_name__
from .initialization import create
from .toml import import_tomls, update_project, reimport_project
from .find import find_record, list_projects
@ -8,6 +9,8 @@ from .tools import str2list
from .main import update_aliases
from .meas_io import drop_cache as mio_drop_cache
from .meas_io import load_record as mio_load_record
from .integrity import full_integrity_check
import os
from pyerrors import Corr
from importlib.metadata import version
@ -137,6 +140,16 @@ def stat(
return
@app.command()
def check(path: Path = typer.Option(
Path('./corrlib'),
"--dataset",
"-d",
),
) -> None:
full_integrity_check(path)
@app.command()
def importer(
path: Path = typer.Option(

View file

@ -27,19 +27,21 @@ def are_keys_unique(db: Path, table: str, col: str) -> bool:
def check_db_integrity(path: Path) -> None:
db = get_db_file(path)
if not are_keys_unique(db, 'backlogs', 'path'):
if not are_keys_unique(path / db, 'backlogs', 'path'):
raise Exception("The paths the backlog table of the database links are not unique.")
search_expr = "SELECT * FROM 'backlogs'"
conn = sqlite3.connect(db)
conn = sqlite3.connect(path / db)
results = pd.read_sql(search_expr, conn)
for _, result in results.iterrows():
if not has_valid_times(result):
raise ValueError(f"Result with id {result[id]} has wrong time signatures.")
print("DB:\t")
def full_integrity_check(path: Path) -> None:
check_db_integrity(path)
print("Full:\t")