Source code for galaxy.web.framework.middleware.sqldebug

"""
Per-request SQL debugging middleware.
"""

import logging

from galaxy.model.orm.engine_factory import (
    log_request_query_counts,
    reset_request_query_counts,
)

log = logging.getLogger(__name__)


[docs]class SQLDebugMiddleware:
[docs] def __init__(self, application, galaxy, config=None): #: the wrapped webapp self.application = application
def __call__(self, environ, start_response): query_string = environ.get("QUERY_STRING") if "sql_debug=1" in query_string: import galaxy.app if galaxy.app.app.model.thread_local_log: galaxy.app.app.model.thread_local_log.log = True try: reset_request_query_counts() return self.application(environ, start_response) finally: log_request_query_counts(environ.get("PATH_INFO"))