Skip to content

from reactivity.hmr.hooks import *

pre_reload_hooks module-attribute

pre_reload_hooks: dict[str, Callable[[], Any]] = {}

post_reload_hooks module-attribute

post_reload_hooks: dict[str, Callable[[], Any]] = {}

pre_reload

pre_reload[T](func: Callable[[], T]) -> Callable[[], T]
Source code in reactivity/hmr/hooks.py
11
12
13
def pre_reload[T](func: Callable[[], T]) -> Callable[[], T]:
    pre_reload_hooks[func.__name__] = func
    return func

post_reload

post_reload[T](func: Callable[[], T]) -> Callable[[], T]
Source code in reactivity/hmr/hooks.py
16
17
18
def post_reload[T](func: Callable[[], T]) -> Callable[[], T]:
    post_reload_hooks[func.__name__] = func
    return func

use_pre_reload

use_pre_reload(func)
Source code in reactivity/hmr/hooks.py
21
22
23
24
25
26
27
@contextmanager
def use_pre_reload(func):
    pre_reload(func)
    try:
        yield func
    finally:
        pre_reload_hooks.pop(func.__name__, None)

use_post_reload

use_post_reload(func)
Source code in reactivity/hmr/hooks.py
30
31
32
33
34
35
36
@contextmanager
def use_post_reload(func):
    post_reload(func)
    try:
        yield func
    finally:
        post_reload_hooks.pop(func.__name__, None)

call_pre_reload_hooks

call_pre_reload_hooks()
Source code in reactivity/hmr/hooks.py
39
40
41
def call_pre_reload_hooks():
    for func in pre_reload_hooks.values():
        func()

call_post_reload_hooks

call_post_reload_hooks()
Source code in reactivity/hmr/hooks.py
44
45
46
def call_post_reload_hooks():
    for func in post_reload_hooks.values():
        func()

on_dispose

on_dispose(
    func: Callable[[], Any], __file__: str | None = None
)
Source code in reactivity/hmr/hooks.py
49
50
51
52
53
54
55
def on_dispose(func: Callable[[], Any], __file__: str | None = None):
    path = Path(currentframe().f_back.f_globals["__file__"] if __file__ is None else __file__).resolve()  # type: ignore

    from .core import ReactiveModule

    module = ReactiveModule.instances[path]
    module.register_dispose_callback(func)