123456789101112131415161718192021 |
- """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
|