summaryrefslogtreecommitdiff
path: root/ansicolor
diff options
context:
space:
mode:
authorMartin Matusiak <numerodix@gmail.com>2014-03-10 18:59:56 +0100
committerMartin Matusiak <numerodix@gmail.com>2014-03-10 18:59:56 +0100
commitb3f89216ddbd95e10e6c9e189a2f53b30ed1e06e (patch)
tree83579a17e10933681dac26404f6518f461c33172 /ansicolor
parent5c667a0de99645fa74b1f73ab897ef5f475a2bc4 (diff)
downloadansicolor-b3f89216ddbd95e10e6c9e189a2f53b30ed1e06e.tar.gz
extend colorize to support start, end indices
Diffstat (limited to 'ansicolor')
-rw-r--r--ansicolor/ansicolor.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/ansicolor/ansicolor.py b/ansicolor/ansicolor.py
index e418d92..ddf4432 100644
--- a/ansicolor/ansicolor.py
+++ b/ansicolor/ansicolor.py
@@ -141,7 +141,8 @@ def get_code(color, bold=False, reverse=False):
return '\033[' + fmt + color + 'm'
-def colorize(s, color, bold=False, reverse=False):
+
+def colorize(s, color, bold=False, reverse=False, start=None, end=None):
"""
Colorize a string with the color given.
@@ -150,11 +151,24 @@ def colorize(s, color, bold=False, reverse=False):
:type color: :class:`Colors` class
:param bool bold: Whether to mark up in bold.
:param bool reverse: Whether to mark up in reverse video.
+ :param int start: Index at which to start coloring.
+ :param int end: Index at which to end coloring.
:rtype: string
"""
- return ("%s%s%s" % (get_code(color, bold=bold, reverse=reverse),
- s, get_code(None)))
+ start = start if start else 0
+ end = end if end else len(s)
+
+ before = s[:start]
+ between = s[start:end]
+ after = s[end:]
+
+ return ("%s%s%s%s%s" % (before,
+ get_code(color, bold=bold, reverse=reverse),
+ between,
+ get_code(None),
+ after))
+
def wrap_string(s, pos, color, bold=False, reverse=False):
"""