|
@@ -6,6 +6,7 @@ from typing import Any, List, Optional, Tuple
|
|
|
|
|
|
import __main__
|
|
import __main__
|
|
import uvicorn
|
|
import uvicorn
|
|
|
|
+from starlette.middleware.sessions import SessionMiddleware
|
|
from uvicorn.main import STARTUP_FAILURE
|
|
from uvicorn.main import STARTUP_FAILURE
|
|
from uvicorn.supervisors import ChangeReload, Multiprocess
|
|
from uvicorn.supervisors import ChangeReload, Multiprocess
|
|
|
|
|
|
@@ -13,6 +14,13 @@ from . import globals, helpers, native_mode
|
|
from .language import Language
|
|
from .language import Language
|
|
|
|
|
|
|
|
|
|
|
|
+class Server(uvicorn.Server):
|
|
|
|
+
|
|
|
|
+ def run(self, sockets: List[Any] = None) -> None:
|
|
|
|
+ globals.app.add_middleware(SessionMiddleware, secret_key='some_random_string') # TODO real random string
|
|
|
|
+ super().run(sockets=sockets)
|
|
|
|
+
|
|
|
|
+
|
|
def run(*,
|
|
def run(*,
|
|
host: Optional[str] = None,
|
|
host: Optional[str] = None,
|
|
port: int = 8080,
|
|
port: int = 8080,
|
|
@@ -115,7 +123,7 @@ def run(*,
|
|
log_level=uvicorn_logging_level,
|
|
log_level=uvicorn_logging_level,
|
|
**kwargs,
|
|
**kwargs,
|
|
)
|
|
)
|
|
- globals.server = uvicorn.Server(config=config)
|
|
|
|
|
|
+ globals.server = Server(config=config)
|
|
|
|
|
|
if (reload or config.workers > 1) and not isinstance(config.app, str):
|
|
if (reload or config.workers > 1) and not isinstance(config.app, str):
|
|
logging.warning('You must pass the application as an import string to enable "reload" or "workers".')
|
|
logging.warning('You must pass the application as an import string to enable "reload" or "workers".')
|