Mercurial > kallithea
changeset 5599:8bc8366a6874
cleanup: introduce scripts/logformat.py for cleanup of string formatting of logging statements
Script used for cleanup in 0210d0b769d4 to replace logging with % formatting
with unformatted parameters.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 27 Nov 2015 01:48:09 +0100 |
parents | edb24bc0f71a |
children | 9a4d4e623c85 |
files | scripts/logformat.py |
diffstat | 1 files changed, 39 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/logformat.py Fri Nov 27 01:48:09 2015 +0100 @@ -0,0 +1,39 @@ +#!/usr/bin/env python2 + +import re +import sys + +if len(sys.argv) < 2: + print 'Cleanup of superfluous % formatting of log statements.' + print 'Usage:' + print ''' hg revert `hg loc '*.py'|grep -v logformat.py` && scripts/logformat.py `hg loc '*.py'` && hg diff''' + raise SystemExit(1) + + +logre = r''' +(log\.(?:error|info|warning|debug) +[(][ \n]* +) +%s +( +[ \n]*[)] +) +''' +res = [ + # handle % () - keeping spaces around the old % + (re.compile(logre % r'''("[^"]*"|'[^']*') ([\n ]*) % ([\n ]*) \( ( (?:[^()]|\n)* (?: \( (?:[^()]|\n)* \) (?:[^()]|\n)* )* ) \) ''', flags=re.MULTILINE|re.VERBOSE), r'\1\2,\3\4\5\6'), + # handle % without () - keeping spaces around the old % + (re.compile(logre % r'''("[^"]*"|'[^']*') ([\n ]*) % ([\n ]*) ( (?:[^()]|\n)* (?: \( (?:[^()]|\n)* \) (?:[^()]|\n)* )* ) ''', flags=re.MULTILINE|re.VERBOSE), r'\1\2,\3\4\5\6'), + # remove extra space if it is on next line + (re.compile(logre % r'''("[^"]*"|'[^']*') , (\n [ ]) ([ ][\n ]*) ( (?:[^()]|\n)* (?: \( (?:[^()]|\n)* \) (?:[^()]|\n)* )* ) ''', flags=re.MULTILINE|re.VERBOSE), r'\1\2,\3\4\5\6'), + # remove extra space if it is on same line + (re.compile(logre % r'''("[^"]*"|'[^']*') , [ ]+ () ( [\n ]+) ( (?:[^()]|\n)* (?: \( (?:[^()]|\n)* \) (?:[^()]|\n)* )* ) ''', flags=re.MULTILINE|re.VERBOSE), r'\1\2,\3\4\5\6'), + # remove trailing , and space + (re.compile(logre % r'''("[^"]*"|'[^']*') , () ( [\n ]*) ( (?:[^()]|\n)* (?: \( (?:[^()]|\n)* \) (?:[^()]|\n)* )* [^(), \n] ) [ ,]*''', flags=re.MULTILINE|re.VERBOSE), r'\1\2,\3\4\5\6'), + ] + +for f in sys.argv[1:]: + s = file(f).read() + for r, t in res: + s = r.sub(t, s) + file(f, 'w').write(s)