##// END OF EJS Templates
diff parser: match the header order of hg diff --git patches...
diff parser: match the header order of hg diff --git patches The output might look like: diff --git a/A b/B old mode 100644 new mode 100755 rename from A rename to B --- a/A +++ b/B Such files were shown as 'modified binary file chmod 100644 => 100755' without diff. Now the chmod and diff will be shown ... but still not the rename. Correct parsing of headers do require a better parser - one do not just use a regexp.

File last commit:

r1512:bf263968 merge default
r3817:631e8000 beta
Show More
colored_formatter.py
85 lines | 2.2 KiB | text/x-python | PythonLexer
/ rhodecode / lib / colored_formatter.py
renamed project to rhodecode
r547
import logging
BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = xrange(30, 38)
source code cleanup: remove trailing white space, normalize file endings
r1203 # Sequences
renamed project to rhodecode
r547 RESET_SEQ = "\033[0m"
Removed bolds from colored logs (better readability)
r1391 COLOR_SEQ = "\033[0;%dm"
renamed project to rhodecode
r547 BOLD_SEQ = "\033[1m"
COLORS = {
pep8ify
r1307 'CRITICAL': MAGENTA,
'ERROR': RED,
'WARNING': CYAN,
'INFO': GREEN,
'DEBUG': BLUE,
'SQL': YELLOW
renamed project to rhodecode
r547 }
pep8ify
r1307
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
r1186 def one_space_trim(s):
if s.find(" ") == -1:
return s
else:
s = s.replace(' ', ' ')
return one_space_trim(s)
pep8ify
r1307
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
r1186 def format_sql(sql):
sql = sql.replace('\n', '')
sql = one_space_trim(sql)
sql = sql\
.replace(',', ',\n\t')\
.replace('SELECT', '\n\tSELECT \n\t')\
.replace('UPDATE', '\n\tUPDATE \n\t')\
.replace('DELETE', '\n\tDELETE \n\t')\
.replace('FROM', '\n\tFROM')\
.replace('ORDER BY', '\n\tORDER BY')\
.replace('LIMIT', '\n\tLIMIT')\
.replace('WHERE', '\n\tWHERE')\
.replace('AND', '\n\tAND')\
.replace('LEFT', '\n\tLEFT')\
.replace('INNER', '\n\tINNER')\
.replace('INSERT', '\n\tINSERT')\
.replace('DELETE', '\n\tDELETE')
return sql
pep8ify
r1307
renamed project to rhodecode
r547 class ColorFormatter(logging.Formatter):
def __init__(self, *args, **kwargs):
# can't do super(...) here because Formatter is an old school class
logging.Formatter.__init__(self, *args, **kwargs)
def format(self, record):
"""
Changes record's levelname to use with COLORS enum
"""
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
r1186
renamed project to rhodecode
r547 levelname = record.levelname
start = COLOR_SEQ % (COLORS[levelname])
def_record = logging.Formatter.format(self, record)
end = RESET_SEQ
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
r1186
Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy....
r1360 colored_record = ''.join([start, def_record, end])
renamed project to rhodecode
r547 return colored_record
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
r1186
class ColorFormatterSql(logging.Formatter):
def __init__(self, *args, **kwargs):
# can't do super(...) here because Formatter is an old school class
logging.Formatter.__init__(self, *args, **kwargs)
def format(self, record):
"""
Changes record's levelname to use with COLORS enum
"""
start = COLOR_SEQ % (COLORS['SQL'])
def_record = format_sql(logging.Formatter.format(self, record))
end = RESET_SEQ
Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy....
r1360 colored_record = ''.join([start, def_record, end])
timperproxy will just measure the time of queries, and formatting will be handled by the new sql_formatter of queries from sqlalchemy itself. Updated ini files for new way logging
r1186 return colored_record