|
10 | 10 | import time |
11 | 11 | from dataclasses import asdict, dataclass, field |
12 | 12 | from pathlib import Path |
13 | | -from Levenshtein import distance, ratio |
| 13 | +from Levenshtein import ratio |
14 | 14 | from filelock import FileLock, Timeout |
15 | 15 | from typing import Any, Dict, List, Optional, Set, Tuple, Union |
16 | 16 |
|
@@ -307,7 +307,8 @@ def save(self, path: Optional[str] = None, iteration: int = 0) -> None: |
307 | 307 | logger.warning("No database path specified, skipping save") |
308 | 308 | return |
309 | 309 |
|
310 | | - lock_path = save_path + ".lock" |
| 310 | + lock_name = os.path.basename(save_path) + '.lock' |
| 311 | + lock_path = os.path.join('tmp/locks', lock_name) |
311 | 312 | try: |
312 | 313 | with FileLock(lock_path, timeout=10): |
313 | 314 | # Create directory and remove old path if it exists |
@@ -371,7 +372,8 @@ def load(self, path: str) -> None: |
371 | 372 | logger.info(f"Loaded database metadata with last_iteration={self.last_iteration}") |
372 | 373 |
|
373 | 374 | # Load programs |
374 | | - lock_path = path + ".lock" |
| 375 | + lock_name = os.path.basename(path) + '.lock' |
| 376 | + lock_path = os.path.join('tmp/locks', lock_name) |
375 | 377 | programs_dir = os.path.join(path, "programs") |
376 | 378 | try: |
377 | 379 | with FileLock(lock_path, timeout=10): |
|
0 commit comments