From 703fe3b68fba94d68b3fb3794a0691219f12c85d Mon Sep 17 00:00:00 2001 From: roadscape <roadscape@users.noreply.github.com> Date: Wed, 11 Jul 2018 16:03:53 -0500 Subject: [PATCH] remove regex dep from stats --- hive/utils/stats.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/hive/utils/stats.py b/hive/utils/stats.py index 1ea5ffdae..b94934309 100644 --- a/hive/utils/stats.py +++ b/hive/utils/stats.py @@ -1,6 +1,5 @@ """Tracks SQL timing stats and prints results periodically or on exit.""" -import re import atexit import logging @@ -9,10 +8,15 @@ from hive.utils.system import colorize, peak_usage_mb log = logging.getLogger(__name__) -def _normalize_sql(sql): - nsql = ' '.join(sql[0:512].split())[0:256] - nsql = re.sub(r'VALUES (\s*\([^)]+\),?)+', 'VALUES (...)', nsql) - return nsql +def _normalize_sql(sql, maxlen=150): + """Collapse whitespace and middle-truncate if needed.""" + out = ' '.join(sql.split()) + if len(out) > maxlen: + i = int(maxlen / 2 - 4) + out = (out[0:i] + + ' . . . ' + + out[-i:None]) + return out def log_query_stats(fn): """Decorator for hive.db.adapter::query()""" @@ -71,7 +75,7 @@ class StatsAbstract: log.info('%7s %9s %9s %9s', '-pct-', '-ttl-', '-avg-', '-cnt-') for call, ms, reqs in self.table(40): log.info("% 6.1f%% % 7dms % 9.2f % 8dx -- %s", - 100 * ms/self._ms, ms, ms/reqs, reqs, call[0:150]) + 100 * ms/self._ms, ms, ms/reqs, reqs, call) self.clear() -- GitLab