"""Shims the real reflex app module for running backend server (uvicorn or gunicorn). Only the app attribute is explicitly exposed. """ from concurrent.futures import ThreadPoolExecutor from reflex import constants from reflex.utils.prerequisites import get_app, get_compiled_app if "app" != constants.CompileVars.APP: raise AssertionError("unexpected variable name for 'app'") app_module = get_app(reload=False) app = getattr(app_module, constants.CompileVars.APP) ThreadPoolExecutor(max_workers=1).submit(app.compile_) # ensure only "app" is exposed. del app_module del get_app del get_compiled_app del constants del ThreadPoolExecutor