from app import app from flask import url_for import importlib import os import log import glob files = glob.glob(os.path.dirname(__file__) + "/**/*.py", recursive=True) files.remove(__file__) files = [str(filename) .replace(os.path.dirname(__file__) + "/", '') .replace("/", ".") .replace(".py", '') for filename in files] def route(dynamic_route): app.register_blueprint(dynamic_route[1], url_prefix=dynamic_route[0]) path = (dynamic_route[0] + "/" + dynamic_route[1].name).replace('//', '/') log.info(f"dynamically routing {path}") for file in files: mod = importlib.import_module(file) if hasattr(mod, "dynamic_route"): route(mod.dynamic_route) elif hasattr(mod, "dynamic_routes"): for dynamic_route in mod.dynamic_routes: route(dynamic_route)