Compare commits

...

2 commits

Author SHA1 Message Date
5c6783452d
fix(hotreload): verify that a file path exists before creating an observer schedule for it
Some checks failed
Actions / Build Documentation (MkDocs) (push) Successful in 47s
Actions / Lint Code (Ruff & Pylint) (push) Failing after 52s
2025-01-26 21:29:02 +00:00
70d75c688c
fix(hotreload): only import ObserverType for TYPE_CHECKING 2025-01-26 21:23:08 +00:00

View file

@ -1,6 +1,6 @@
from asyncio import run_coroutine_threadsafe
from pathlib import Path
from typing import Sequence
from typing import TYPE_CHECKING, Sequence
from red_commons.logging import RedTraceLogger, getLogger
from redbot.core import Config, checks, commands
@ -8,7 +8,10 @@ from redbot.core.bot import Red
from redbot.core.core_commands import CoreLogic
from redbot.core.utils.chat_formatting import bold, box, humanize_list
from watchdog.events import FileSystemEvent, FileSystemMovedEvent, RegexMatchingEventHandler
from watchdog.observers import Observer, ObserverType
from watchdog.observers import Observer
if TYPE_CHECKING:
from watchdog.observers import ObserverType
class HotReload(commands.Cog):
@ -16,7 +19,7 @@ class HotReload(commands.Cog):
__author__ = ["[cswimr](https://www.coastalcommits.com/cswimr)"]
__git__ = "https://www.coastalcommits.com/cswimr/SeaCogs"
__version__ = "1.3.0"
__version__ = "1.3.2"
__documentation__ = "https://seacogs.coastalcommits.com/hotreload/"
def __init__(self, bot: Red) -> None:
@ -70,6 +73,10 @@ class HotReload(commands.Cog):
self.logger.debug("Stopped hanging observer.")
continue
for path in paths:
if not path.exists():
self.logger.warning("Path %s does not exist. Skipping.", path)
continue
self.logger.debug("Adding observer schedule for path %s.", path)
observer.schedule(event_handler=HotReloadHandler(cog=self, path=path), path=path, recursive=True)
observer.start()
self.logger.info("Started observer. Watching for file changes.")