rename getter for the database file name

This commit is contained in:
Justus Kuhlmann 2026-02-20 09:42:28 +01:00
commit 3d91509ab6
Signed by: jkuhl
GPG key ID: 00ED992DD79B85A6
5 changed files with 30 additions and 30 deletions

View file

@ -1,22 +1,22 @@
from typing import Union, Optional
from typing import Optional
import os
import shutil
from .tools import record2name_key
from pyerrors import dump_object
import datalad.api as dl
import sqlite3
from tools import db_filename
def get_version_hash(path, record):
db = os.path.join(path, "backlogger.db")
def get_version_hash(path: str, record: str) -> str:
db = os.path.join(path, db_filename(path))
dl.get(db, dataset=path)
conn = sqlite3.connect(db)
c = conn.cursor()
c.execute(f"SELECT current_version FROM 'backlogs' WHERE path = '{record}'")
return c.fetchall()[0][0]
return str(c.fetchall()[0][0])
def drop_cache_files(path: str, fs: Optional[list[str]]=None):
def drop_cache_files(path: str, fs: Optional[list[str]]=None) -> None:
cache_dir = os.path.join(path, ".cache")
if fs is None:
fs = os.listdir(cache_dir)
@ -24,7 +24,7 @@ def drop_cache_files(path: str, fs: Optional[list[str]]=None):
shutil.rmtree(os.path.join(cache_dir, f))
def cache_dir(path, file):
def cache_dir(path: str, file: str) -> str:
cache_path_list = [path]
cache_path_list.append(".cache")
cache_path_list.extend(file.split("/")[1:])
@ -32,27 +32,27 @@ def cache_dir(path, file):
return cache_path
def cache_path(path, file, sha_hash, key):
def cache_path(path: str, file: str, sha_hash: str, key: str) -> str:
cache_path = os.path.join(cache_dir(path, file), key + "_" + sha_hash)
return cache_path
def is_old_version(path, record):
def is_old_version(path: str, record: str) -> bool:
version_hash = get_version_hash(path, record)
file, key = record2name_key(record)
meas_cache_path = os.path.join(cache_dir(path, file))
ls = []
is_old = True
for p, ds, fs in os.walk(meas_cache_path):
ls.extend(fs)
for filename in ls:
if key == filename.split("_")[0]:
if not version_hash == filename.split("_")[1][:-2]:
return True
else:
return False
if version_hash == filename.split("_")[1][:-2]:
is_old = False
return is_old
def is_in_cache(path, record):
def is_in_cache(path: str, record: str) -> bool:
version_hash = get_version_hash(path, record)
file, key = record2name_key(record)
return os.path.exists(cache_path(path, file, version_hash, key) + ".p")

View file

@ -4,7 +4,7 @@ import json
import pandas as pd
import numpy as np
from .input.implementations import codes
from .tools import k2m, get_db_file
from .tools import k2m, db_filename
from .tracker import get
from typing import Any, Optional
@ -230,7 +230,7 @@ def sfcf_filter(results: pd.DataFrame, **kwargs: Any) -> pd.DataFrame:
def find_record(path: str, ensemble: str, correlator_name: str, code: str, project: Optional[str]=None, parameters: Optional[str]=None,
created_before: Optional[str]=None, created_after: Optional[str]=None, updated_before: Optional[str]=None, updated_after: Optional[str]=None, revision: Optional[str]=None, **kwargs: Any) -> pd.DataFrame:
db_file = get_db_file(path)
db_file = db_filename(path)
db = os.path.join(path, db_file)
if code not in codes:
raise ValueError("Code " + code + "unknown, take one of the following:" + ", ".join(codes))
@ -262,7 +262,7 @@ def find_project(path: str, name: str) -> str:
uuid: str
The uuid of the project in question.
"""
db_file = get_db_file(path)
db_file = db_filename(path)
get(path, db_file)
return _project_lookup_by_alias(os.path.join(path, db_file), name)
@ -281,7 +281,7 @@ def list_projects(path: str) -> list[tuple[str, str]]:
results: list[Any]
The projects known to the library.
"""
db_file = get_db_file(path)
db_file = db_filename(path)
get(path, db_file)
conn = sqlite3.connect(os.path.join(path, db_file))
c = conn.cursor()

View file

@ -5,7 +5,7 @@ import os
from .git_tools import move_submodule
import shutil
from .find import _project_lookup_by_id
from .tools import list2str, str2list, get_db_file
from .tools import list2str, str2list, db_filename
from .tracker import get, save, unlock, clone, drop
from typing import Union, Optional
@ -25,7 +25,7 @@ def create_project(path: str, uuid: str, owner: Union[str, None]=None, tags: Uni
code: str (optional)
The code that was used to create the measurements.
"""
db_file = get_db_file(path)
db_file = db_filename(path)
db = os.path.join(path, db_file)
get(path, db_file)
conn = sqlite3.connect(db)
@ -64,7 +64,7 @@ def update_project_data(path: str, uuid: str, prop: str, value: Union[str, None]
value: str or None
Value to se `prop` to.
"""
db_file = get_db_file(path)
db_file = db_filename(path)
get(path, db_file)
conn = sqlite3.connect(os.path.join(path, db_file))
c = conn.cursor()
@ -75,7 +75,7 @@ def update_project_data(path: str, uuid: str, prop: str, value: Union[str, None]
def update_aliases(path: str, uuid: str, aliases: list[str]) -> None:
db_file = get_db_file(path)
db_file = db_filename(path)
db = os.path.join(path, db_file)
get(path, db_file)
known_data = _project_lookup_by_id(db, uuid)[0]
@ -135,7 +135,7 @@ def import_project(path: str, url: str, owner: Union[str, None]=None, tags: Opti
if not uuid:
raise ValueError("The dataset does not have a uuid!")
if not os.path.exists(path + "/projects/" + uuid):
db_file = get_db_file(path)
db_file = db_filename(path)
get(path, db_file)
unlock(path, db_file)
create_project(path, uuid, owner, tags, aliases, code)

View file

@ -3,12 +3,12 @@ import os
import sqlite3
from .input import sfcf,openQCD
import json
from typing import Union, Optional,Any
from typing import Union, Any
from pyerrors import Obs, Corr, load_object, dump_object
from hashlib import sha256, sha1
from hashlib import sha256
from .tools import record2name_key, name_key2record, make_version_hash
from .cache_io import is_in_cache, cache_path, cache_dir, get_version_hash
from .tools import get_db_file, cache_enabled
from .tools import db_filename, cache_enabled
from .tracker import get, save, unlock
import shutil
@ -33,7 +33,7 @@ def write_measurement(path: str, ensemble: str, measurement: dict[str, dict[str,
parameter_file: str
The parameter file used for the measurement.
"""
db_file = get_db_file(path)
db_file = db_filename(path)
db = os.path.join(path, db_file)
get(path, db_file)
unlock(path, db_file)
@ -204,7 +204,7 @@ def drop_record(path: str, meas_path: str) -> None:
"""
file_in_archive = meas_path.split("::")[0]
file = os.path.join(path, file_in_archive)
db_file = get_db_file(path)
db_file = db_filename(path)
db = os.path.join(path, db_file)
get(path, db_file)
sub_key = meas_path.split("::")[1]

View file

@ -3,7 +3,7 @@ from configparser import ConfigParser
import datalad.api as dl
from typing import Optional
import shutil
from .tools import get_db_file
from .tools import db_filename
def get_tracker(path: str) -> str:
@ -43,7 +43,7 @@ def get(path: str, file: str) -> None:
"""
tracker = get_tracker(path)
if tracker == 'datalad':
if file == get_db_file(path):
if file == db_filename(path):
print("Downloading database...")
else:
print("Downloading data...")