Plain is headed towards 1.0! Subscribe for development updates →

 1from importlib import import_module
 2from importlib.util import find_spec
 3
 4from plain.packages import PackageConfig, packages_registry, register_config
 5
 6from .registry import jobs_registry
 7
 8JOBS_MODULE_NAME = "jobs"
 9
10
11@register_config
12class Config(PackageConfig):
13    package_label = "plainworker"
14
15    def ready(self):
16        # Trigger register calls to fire by importing the modules
17        for package_config in packages_registry.get_package_configs():
18            module_name = f"{package_config.name}.{JOBS_MODULE_NAME}"
19            if find_spec(module_name):
20                import_module(module_name)
21
22        # Also need to make sure out internal jobs are registered
23        import_module("plain.worker.scheduling")
24
25        jobs_registry.ready = True