MCPcopy
hub / github.com/pallets/werkzeug / run_with_reloader

Function run_with_reloader

src/werkzeug/_reloader.py:436–465  ·  view source on GitHub ↗

Run the given function in an independent Python interpreter.

(
    main_func: t.Callable[[], None],
    extra_files: t.Iterable[str] | None = None,
    exclude_patterns: t.Iterable[str] | None = None,
    interval: int | float = 1,
    reloader_type: str = "auto",
)

Source from the content-addressed store, hash-verified

434
435
436def run_with_reloader(
437 main_func: t.Callable[[], None],
438 extra_files: t.Iterable[str] | None = None,
439 exclude_patterns: t.Iterable[str] | None = None,
440 interval: int | float = 1,
441 reloader_type: str = "auto",
442) -> None:
443 """Run the given function in an independent Python interpreter."""
444 import signal
445
446 signal.signal(signal.SIGTERM, lambda *args: sys.exit(0))
447 reloader = reloader_loops[reloader_type](
448 extra_files=extra_files, exclude_patterns=exclude_patterns, interval=interval
449 )
450
451 try:
452 if os.environ.get("WERKZEUG_RUN_MAIN") == "true":
453 ensure_echo_on()
454 t = threading.Thread(target=main_func, args=())
455 t.daemon = True
456
457 # Enter the reloader to set up initial state, then start
458 # the app thread and reloader update loop.
459 with reloader:
460 t.start()
461 reloader.run()
462 else:
463 sys.exit(reloader.restart_with_reloader())
464 except KeyboardInterrupt:
465 pass

Callers 1

run_simpleFunction · 0.85

Calls 4

ensure_echo_onFunction · 0.85
restart_with_reloaderMethod · 0.80
getMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected