Buckets:
ktongue/docker_container / simsite /venv /lib /python3.14 /site-packages /django /template /autoreload.py
| from pathlib import Path | |
| from django.dispatch import receiver | |
| from django.template import engines | |
| from django.template.backends.django import DjangoTemplates | |
| from django.utils._os import to_path | |
| from django.utils.autoreload import autoreload_started, file_changed, is_django_path | |
| def get_template_directories(): | |
| # Iterate through each template backend and find | |
| # any template_loader that has a 'get_dirs' method. | |
| # Collect the directories, filtering out Django templates. | |
| cwd = Path.cwd() | |
| items = set() | |
| for backend in engines.all(): | |
| if not isinstance(backend, DjangoTemplates): | |
| continue | |
| items.update(cwd / to_path(dir) for dir in backend.engine.dirs if dir) | |
| for loader in backend.engine.template_loaders: | |
| if not hasattr(loader, "get_dirs"): | |
| continue | |
| items.update( | |
| cwd / to_path(directory) | |
| for directory in loader.get_dirs() | |
| if directory and not is_django_path(directory) | |
| ) | |
| return items | |
| def reset_loaders(): | |
| from django.forms.renderers import get_default_renderer | |
| for backend in engines.all(): | |
| if not isinstance(backend, DjangoTemplates): | |
| continue | |
| for loader in backend.engine.template_loaders: | |
| loader.reset() | |
| backend = getattr(get_default_renderer(), "engine", None) | |
| if isinstance(backend, DjangoTemplates): | |
| for loader in backend.engine.template_loaders: | |
| loader.reset() | |
| def watch_for_template_changes(sender, **kwargs): | |
| for directory in get_template_directories(): | |
| sender.watch_dir(directory, "**/*") | |
| def template_changed(sender, file_path, **kwargs): | |
| if file_path.suffix == ".py": | |
| return | |
| for template_dir in get_template_directories(): | |
| if template_dir in file_path.parents: | |
| reset_loaders() | |
| return True | |
Xet Storage Details
- Size:
- 2.06 kB
- Xet hash:
- 053f986de527d3bfb35ef22406681e7bbd404201c7d847977ca2ae2534e83b03
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.