bedrock.endpoints.runner

 1import traceback  # pragma: unit
 2from bedrock.config import internals  # pragma: unit
 3from bedrock.db.alchemy_helper import get_session  # pragma: unit
 4from bedrock.endpoints.response import respond, err  # pragma: unit
 5from bedrock.log import log_config  # pragma: unit
 6from bedrock.exceptions import BedrockException  # pragma: unit
 7from bedrock.config.models import get_models  # pragma: unit
 8
 9log = log_config("runner")  # pragma: unit
10
11# load all models
12get_models(internals["models_location"], internals["models_prefix"])  # pragma: unit
13
14
15def cleanup_session():  # pragma: no cover
16    try:
17        get_session().close()
18        log.info("Database session closed successfully")
19    except Exception as e:
20        log.warning(f"Session close failed or was already closed: {e}")
21
22
23def handle_with_endpoint(endpoint, event, context, is_local=False):  # pragma: unit
24    try:
25        response = respond(*endpoint._handle_with_context(event, context))
26    except BedrockException as e:
27        exception = traceback.format_exc()
28        log.error(exception, exc_info=True)
29        response = err(e, exception, event=event)
30    except Exception:
31        exception = traceback.format_exc()
32        log.error(exception, exc_info=True)
33        response = err("An unexpected error has occurred", exception, event=event)
34    finally:
35        if not is_local:
36            cleanup_session()
37
38    return response
log = <MyLogger BEDROCK-runner (INFO)>
def cleanup_session():
16def cleanup_session():  # pragma: no cover
17    try:
18        get_session().close()
19        log.info("Database session closed successfully")
20    except Exception as e:
21        log.warning(f"Session close failed or was already closed: {e}")
def handle_with_endpoint(endpoint, event, context, is_local=False):
24def handle_with_endpoint(endpoint, event, context, is_local=False):  # pragma: unit
25    try:
26        response = respond(*endpoint._handle_with_context(event, context))
27    except BedrockException as e:
28        exception = traceback.format_exc()
29        log.error(exception, exc_info=True)
30        response = err(e, exception, event=event)
31    except Exception:
32        exception = traceback.format_exc()
33        log.error(exception, exc_info=True)
34        response = err("An unexpected error has occurred", exception, event=event)
35    finally:
36        if not is_local:
37            cleanup_session()
38
39    return response