Mercurial > kallithea
view scripts/logformat.py @ 7232:dbf8620c278b
setup: do like TurboGears2 and don't support WebOb 1.8
TurboGears2 2.3.12 has been released and made it clear they don't support WebOb
< 1.8.0 - https://github.com/TurboGears/tg2/commit/1aee68f1239c76cabe945aa50ca1f7e7afea6842 .
A plain "pip install -e ." would obey the Kallithea setup.py and install WebOb
1.8.0, but fail at runtime with:
(WebOb 1.8.0, Requirement.parse('WebOb<1.8.0,>=1.2'), set(['TurboGears2']))
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 08 Apr 2018 17:03:08 +0200 |
parents | 665dfa112f2c |
children | 4473f1094d3d |
line wrap: on
line source
#!/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 = open(f).read() for r, t in res: s = r.sub(t, s) open(f, 'w').write(s)