mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-01-17 06:21:22 -05:00
* add basic pre-commit file * add flake8 * add isort * add pep585-upgrade (typing upgrades) * use namespace for import * add mypy * update ci for backend * flake8 scope * fix version format * update makefile * disable strict option (temporary) * fix mypy issues * upgrade type hints (pre-commit) * add vscode typing check * add types to dev deps * remote container draft * update setup script * update compose version * run setup on create * dev containers update * remove unused pages * update setup tips * expose ports * Update pre-commit to include flask8-print (#1053) * Add in flake8-print to pre-commit * pin version of flake8-print * formatting * update getting strated docs * add mypy to pre-commit * purge .mypy_cache on clean * drop mypy Co-authored-by: zackbcom <zackbcom@users.noreply.github.com>
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from collections.abc import Callable, Iterable
|
|
|
|
from mealie.core import root_logger
|
|
|
|
logger = root_logger.get_logger()
|
|
|
|
|
|
class SchedulerRegistry:
|
|
"""
|
|
A container class for registring and removing callbacks for the scheduler.
|
|
"""
|
|
|
|
_daily: list[Callable] = []
|
|
_hourly: list[Callable] = []
|
|
_minutely: list[Callable] = []
|
|
|
|
@staticmethod
|
|
def _register(name: str, callbacks: list[Callable], callback: Iterable[Callable]):
|
|
for cb in callback:
|
|
logger.info(f"Registering {name} callback: {cb.__name__}")
|
|
callbacks.append(cb)
|
|
|
|
@staticmethod
|
|
def register_daily(*callbacks: Callable):
|
|
SchedulerRegistry._register("daily", SchedulerRegistry._daily, callbacks)
|
|
|
|
@staticmethod
|
|
def remove_daily(callback: Callable):
|
|
logger.info(f"Removing daily callback: {callback.__name__}")
|
|
SchedulerRegistry._daily.remove(callback)
|
|
|
|
@staticmethod
|
|
def register_hourly(*callbacks: Callable):
|
|
SchedulerRegistry._register("daily", SchedulerRegistry._hourly, callbacks)
|
|
|
|
@staticmethod
|
|
def remove_hourly(callback: Callable):
|
|
logger.info(f"Removing hourly callback: {callback.__name__}")
|
|
SchedulerRegistry._hourly.remove(callback)
|
|
|
|
@staticmethod
|
|
def register_minutely(*callbacks: Callable):
|
|
SchedulerRegistry._register("minutely", SchedulerRegistry._minutely, callbacks)
|
|
|
|
@staticmethod
|
|
def remove_minutely(callback: Callable):
|
|
logger.info(f"Removing minutely callback: {callback.__name__}")
|
|
SchedulerRegistry._minutely.remove(callback)
|