* fix(monitor): keep watchdog threads from holding the exit (#561) watchdog 7.0.0 on Windows starts a plain threading.Thread per watch for its ReadDirectoryChangesW reader (DirectoryChangeReader.start). Created from ComfyUI's main thread it is not a daemon, and the interpreter joins every non-daemon thread before it runs any atexit callback, so the package teardown that would stop the observer never ran and the process never exited. Start the observer from a short-lived daemon thread, so every thread it creates inherits the daemon flag. Run observer.stop(), which joins the emitters without a limit, on a daemon thread and wait for it only until the stop deadline; a later stop waits for the same call. Lift the watchdog<7 cap. Closes #561 * test(exit): exempt watchdog 7's process-wide inotify reader (#561) watchdog 7 on Linux reads every inotify watch through one InotifyFD daemon thread per process that no observer stop ends, by design. The exit and package tests counted every watchdog BaseThread as the package's, so the singleton failed them once the cap was lifted. Exclude it, and require instead that no non-daemon thread is left at exit.
19 lines
267 B
Plaintext
19 lines
267 B
Plaintext
# Runtime dependencies
|
|
watchdog>=6.0.0
|
|
Pillow>=12.3.0
|
|
aiohttp>=3.14.5
|
|
|
|
# Tests and coverage
|
|
coverage>=7.16.2
|
|
numpy>=2.2.6 # WD14 engine tests
|
|
|
|
# Code quality
|
|
black==26.10.1
|
|
flake8==7.4.1
|
|
|
|
# Security scanning
|
|
bandit[toml]>=1.9.4
|
|
|
|
# Pre-commit hooks
|
|
pre-commit>=4.6.2
|