summaryrefslogtreecommitdiff
path: root/textutils.py
diff options
context:
space:
mode:
Diffstat (limited to 'textutils.py')
-rw-r--r--textutils.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/textutils.py b/textutils.py
index c25d8c8..3c40dda 100644
--- a/textutils.py
+++ b/textutils.py
@@ -30,6 +30,7 @@ unquote, colorize_ansi
"""
__docformat__ = "restructuredtext en"
+import sys
import re
from unicodedata import normalize as _uninormalize
try:
@@ -279,8 +280,6 @@ def apply_units( string, units, inter=None, final=float, blank_reg=_BLANK_RE,
"""
if inter is None:
inter = final
-
-
string = _BLANK_RE.sub('',string)
values = []
for match in value_reg.finditer(string):
@@ -292,7 +291,6 @@ def apply_units( string, units, inter=None, final=float, blank_reg=_BLANK_RE,
if unit is not None:
value *= units[unit]
values.append(value)
-
return final(sum(values))
_LINE_RGX = re.compile('\r\n|\r+|\n')
@@ -434,3 +432,20 @@ def colorize_ansi(msg, color=None, style=None):
return '%s%s%s' % (escape_code, msg, ANSI_RESET)
return msg
+DIFF_STYLE = {'separator': 'cyan', 'remove': 'red', 'add': 'green'}
+
+def diff_colorize_ansi(lines, out=sys.stdout, style=DIFF_STYLE):
+ for line in lines:
+ if line[:4] in ('--- ', '+++ '):
+ out.write(colorize_ansi(line, style['separator']))
+ elif line[0] == '-':
+ out.write(colorize_ansi(line, style['remove']))
+ elif line[0] == '+':
+ out.write(colorize_ansi(line, style['add']))
+ elif line[:4] == '--- ':
+ out.write(colorize_ansi(line, style['separator']))
+ elif line[:4] == '+++ ':
+ out.write(colorize_ansi(line, style['separator']))
+ else:
+ out.write(line)
+