State Ledger
SQLite-backed file ledger that makes incremental runs cheap.
-
class litsync.state.FileRecord[source]
Bases: object
FileRecord(source: ‘str’, filename: ‘str’, url: ‘str’, rel_path: ‘str’, remote_size: ‘Optional[int]’ = None, remote_mtime: ‘Optional[str]’ = None, etag: ‘Optional[str]’ = None, md5: ‘Optional[str]’ = None, local_md5: ‘Optional[str]’ = None, status: ‘str’ = ‘pending’, attempts: ‘int’ = 0, error: ‘Optional[str]’ = None)
-
source: str
-
filename: str
-
url: str
-
rel_path: str
-
remote_size: int | None = None
-
remote_mtime: str | None = None
-
etag: str | None = None
-
md5: str | None = None
-
local_md5: str | None = None
-
status: str = 'pending'
-
attempts: int = 0
-
error: str | None = None
-
__init__(source, filename, url, rel_path, remote_size=None, remote_mtime=None, etag=None, md5=None, local_md5=None, status='pending', attempts=0, error=None)
- Parameters:
-
- Return type:
None
-
class litsync.state.StateDB[source]
Bases: object
Thread-safe-enough SQLite wrapper (single connection guarded by a lock).
-
__init__(path)[source]
- Parameters:
path (Path)
-
get(source, filename)[source]
- Parameters:
-
- Return type:
Row | None
-
all_sources()[source]
- Return type:
set[str]
-
known_filenames(source)[source]
- Parameters:
source (str)
- Return type:
set[str]
-
upsert_seen(rec)[source]
- Parameters:
rec (FileRecord)
- Return type:
None
-
mark(source, filename, **fields)[source]
- Parameters:
-
- Return type:
None
-
summary()[source]
- Return type:
dict[str, int]
-
summary_by_source()[source]
- Return type:
dict[str, dict]
-
files_missing_counts()[source]
- Return type:
list[tuple[str, str, str]]
-
close()[source]
- Return type:
None