view rhodecode/lib/timerproxy.py @ 1340:cbdd583f1e58 beta

reverted copy of cached instance: CPython changelog total_time 39.7253162861 average on req 0.993132907152 changesets total_time 42.5156304836 average on req 0.425156304836 Total: 546 MB changelog total_time 35.5851216316 average on req 0.889628040791 changesets total_time 30.3608012199 average on req 0.303608012199 Total: 475 MB
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 15 May 2011 18:29:33 +0200
parents c1516b35f91d
children 1f47adeb67c2
line wrap: on
line source

from sqlalchemy.interfaces import ConnectionProxy
import time
import logging
log = logging.getLogger('timerproxy')

BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)


def color_sql(sql):
    COLOR_SEQ = "\033[1;%dm"
    COLOR_SQL = YELLOW
    normal = '\x1b[0m'
    return COLOR_SEQ % COLOR_SQL + sql + normal


class TimerProxy(ConnectionProxy):

    def __init__(self):
        super(TimerProxy, self).__init__()

    def cursor_execute(self, execute, cursor, statement, parameters,
                       context, executemany):

        now = time.time()
        try:
            log.info(color_sql(">>>>> STARTING QUERY >>>>>"))
            return execute(cursor, statement, parameters, context)
        finally:
            total = time.time() - now
            log.info(color_sql("<<<<< TOTAL TIME: %f <<<<<" % total))