diff --git a/api/app.py b/api/app.py index a8b7c95fd2..4f393f6c20 100644 --- a/api/app.py +++ b/api/app.py @@ -1,45 +1,4 @@ import os - - -def _setup_gevent(): - """Do gevent monkey patching. - - This function should be called as early as possible. Ideally - it should be the first statement in the entrypoint file. - - It should be - """ - _FALSE_VALUE_FOR_ENV = frozenset(["false", "0", "no"]) - # It seems that JetBrains Python debugger does not work well with gevent, - # so we need to disable gevent in debug mode. - # If you are using debugpy and set GEVENT_SUPPORT=True, you can debug with gevent. - flask_debug_env = os.environ.get("FLASK_DEBUG", "0").lower() - if flask_debug_env not in _FALSE_VALUE_FOR_ENV: - print("Flask Debug enabled.", flush=True) - return - gevent_support_env = os.environ.get("GEVENT_SUPPORT", "false").lower() - if gevent_support_env in _FALSE_VALUE_FOR_ENV: - print("Gevent disabled.", flush=True) - return - - from gevent import monkey - - # gevent - monkey.patch_all() - - from grpc.experimental import gevent as grpc_gevent # type: ignore - - # grpc gevent - grpc_gevent.init_gevent() - - import psycogreen.gevent # type: ignore - - psycogreen.gevent.patch_psycopg() - print("Gevnet and psycopg patched", flush=True) - - -_setup_gevent() - import sys @@ -55,6 +14,24 @@ if is_db_command(): app = create_migrations_app() else: + # It seems that JetBrains Python debugger does not work well with gevent, + # so we need to disable gevent in debug mode. + # If you are using debugpy and set GEVENT_SUPPORT=True, you can debug with gevent. + if (flask_debug := os.environ.get("FLASK_DEBUG", "0")) and flask_debug.lower() in {"false", "0", "no"}: + from gevent import monkey + + # gevent + monkey.patch_all() + + from grpc.experimental import gevent as grpc_gevent # type: ignore + + # grpc gevent + grpc_gevent.init_gevent() + + import psycogreen.gevent # type: ignore + + psycogreen.gevent.patch_psycopg() + from app_factory import create_app app = create_app()