diff --git a/scanner/providers/utils.py b/scanner/providers/utils.py index 27b38212..e16c28d9 100644 --- a/scanner/providers/utils.py +++ b/scanner/providers/utils.py @@ -8,6 +8,7 @@ def format_date(date: date | int | None) -> str | None: return f"{date}-01-01" return date.isoformat() + class ProviderError(RuntimeError): def __init__(self, *args: object) -> None: super().__init__(*args) diff --git a/scanner/scanner/monitor.py b/scanner/scanner/monitor.py index a1342b02..ad35b29d 100644 --- a/scanner/scanner/monitor.py +++ b/scanner/scanner/monitor.py @@ -1,7 +1,15 @@ import asyncio from functools import wraps from watchdog.observers import Observer -from watchdog.events import FileSystemEventHandler, DirCreatedEvent, FileCreatedEvent, DirMovedEvent, FileMovedEvent, DirDeletedEvent, FileDeletedEvent +from watchdog.events import ( + FileSystemEventHandler, + DirCreatedEvent, + FileCreatedEvent, + DirMovedEvent, + FileMovedEvent, + DirDeletedEvent, + FileDeletedEvent, +) from scanner.utils import log_errors @@ -10,6 +18,7 @@ from .scanner import Scanner task_list = [] event = asyncio.Event() + async def monitor(path: str, scanner: Scanner): global task_list @@ -28,6 +37,7 @@ async def monitor(path: str, scanner: Scanner): # Should call .join() if the while stops one day. # observer.join() + def async_event(f): # Log errors of f and catch them to prevent the gather to throw. f = log_errors(f) @@ -39,6 +49,7 @@ def async_event(f): return internal + class EventHandler(FileSystemEventHandler): def __init__(self, scanner: Scanner): self._scanner = scanner