Refactor web_scan.py for improved readability and maintainability; add cron job script for npm log backups; update start.ps1 for consistent formatting.
This commit is contained in:
1 parent
0d1cd21468
commit
c2eba88ac8
113 files changed
+772606
-772579
No files matched your search
+33
-33
@@ -1,33 +1,33 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Persistent state for incremental log scanning.
|
||||
|
||||
Tracks the last processed byte offset per absolute log file path so a scan
|
||||
only reads new entries instead of re-reading the whole file. The state file
|
||||
is written atomically (temp file + rename) to avoid corruption.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
from ..utils.constants import SCAN_STATE_PATH
|
||||
|
||||
|
||||
def load_state() -> dict[str, int]:
|
||||
"""Return ``{absolute log path: byte offset}`` from the scan-state file."""
|
||||
try:
|
||||
with open(SCAN_STATE_PATH, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
return {k: int(v) for k, v in data.items()}
|
||||
except (OSError, ValueError, TypeError):
|
||||
return {}
|
||||
|
||||
|
||||
def save_state(state: dict[str, int]) -> None:
|
||||
"""Write the scan-state file atomically (temp file + rename)."""
|
||||
os.makedirs(os.path.dirname(SCAN_STATE_PATH), exist_ok=True)
|
||||
tmp = SCAN_STATE_PATH + ".tmp"
|
||||
with open(tmp, "w", encoding="utf-8") as f:
|
||||
json.dump(state, f, indent=2, sort_keys=True)
|
||||
os.replace(tmp, SCAN_STATE_PATH)
|
||||
#!/usr/bin/env python3
|
||||
"""Persistent state for incremental log scanning.
|
||||
|
||||
Tracks the last processed byte offset per absolute log file path so a scan
|
||||
only reads new entries instead of re-reading the whole file. The state file
|
||||
is written atomically (temp file + rename) to avoid corruption.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
from ..utils.constants import SCAN_STATE_PATH
|
||||
|
||||
|
||||
def load_state() -> dict[str, int]:
|
||||
"""Return ``{absolute log path: byte offset}`` from the scan-state file."""
|
||||
try:
|
||||
with open(SCAN_STATE_PATH, "r", encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
return {k: int(v) for k, v in data.items()}
|
||||
except (OSError, ValueError, TypeError):
|
||||
return {}
|
||||
|
||||
|
||||
def save_state(state: dict[str, int]) -> None:
|
||||
"""Write the scan-state file atomically (temp file + rename)."""
|
||||
os.makedirs(os.path.dirname(SCAN_STATE_PATH), exist_ok=True)
|
||||
tmp = SCAN_STATE_PATH + ".tmp"
|
||||
with open(tmp, "w", encoding="utf-8") as f:
|
||||
json.dump(state, f, indent=2, sort_keys=True)
|
||||
os.replace(tmp, SCAN_STATE_PATH)
|
||||
Reference in new issue
Block a user