summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Matusiak <numerodix@gmail.com>2014-03-12 20:16:33 +0100
committerMartin Matusiak <numerodix@gmail.com>2014-03-12 20:16:33 +0100
commit3131bf94311dc9cd51b0572492b2393bdd8ab363 (patch)
treea1e2a1471fc193625d18d99ec9a3fc39b5d1292d
parent859c1f7bee387eb23659d72f0e36fa883e857686 (diff)
parent1242eb6819e4a9b423a968cf68afdd6e5dc4f38e (diff)
downloadansicolor-0.2.3.tar.gz
Merge branch 'release/0.2.3'0.2.3
-rw-r--r--ansicolor/__init__.py2
-rw-r--r--ansicolor/ansicolor.py21
-rw-r--r--ansicolor/demos.py25
-rw-r--r--docs/src/changes.rst6
-rw-r--r--tox.ini1
5 files changed, 44 insertions, 11 deletions
diff --git a/ansicolor/__init__.py b/ansicolor/__init__.py
index 74d2c88..75dc344 100644
--- a/ansicolor/__init__.py
+++ b/ansicolor/__init__.py
@@ -32,5 +32,5 @@ __all__ = [
]
__major_version__ = "0.2"
-__release__ = "2"
+__release__ = "3"
__version__ = "%s.%s" % (__major_version__, __release__)
diff --git a/ansicolor/ansicolor.py b/ansicolor/ansicolor.py
index 4aaa3d2..cf3f3af 100644
--- a/ansicolor/ansicolor.py
+++ b/ansicolor/ansicolor.py
@@ -208,17 +208,24 @@ def highlight_string(s, *spanlists, **kw):
:param string s: The string to highlight
:param list spanlists: A list of tuples on the form ``[(begin, end)*]*``
- :param kw: May include: `bold`, `reverse`, `color` and `nocolor`
+ :param kw: May include: `bold`, `reverse`, `color`, `colors` and `nocolor`
:rtype: string
+
+ .. deprecated:: 0.2.3
+ The `color` parameter has been deprecated in favor of `colors`.
"""
+ colors = kw.get('colors', [])
+
# pair span with color and id of the list -> (span, color, list_id)
tuples = []
- for spanlist in spanlists:
- get_id = lambda spanlist: spanlists.index(spanlist)
- get_color = lambda spanlist: get_highlighter(get_id(spanlist))
- tuples.extend([(span, get_color(spanlist), get_id(spanlist))
- for span in spanlist])
+ for id, spanlist in enumerate(spanlists):
+ try:
+ color = colors[id]
+ except IndexError:
+ color = get_highlighter(id)
+
+ tuples.extend([(span, color, id) for span in spanlist])
# produce list of (pos,color,start_end,list_id) pairs
# (begin, Red, True, list_id) # start new color
@@ -269,6 +276,7 @@ def highlight_string(s, *spanlists, **kw):
if color:
if kw.get('color'):
color = kw.get('color')
+ warnings.warn("color is deprecated", DeprecationWarning, 2)
elif kw.get('nocolor'):
color = None
bold = kw.get('bold') or bold
@@ -291,7 +299,6 @@ def highlight_string(s, *spanlists, **kw):
return ''.join(segments)
-
def colordiff(x, y, color_x=Colors.Cyan, color_y=Colors.Green, debug=False):
"""
Formats a diff of two strings using the longest common subsequence by
diff --git a/ansicolor/demos.py b/ansicolor/demos.py
index def30fe..4b65426 100644
--- a/ansicolor/demos.py
+++ b/ansicolor/demos.py
@@ -48,7 +48,8 @@ def demo_color():
write_out('%s ' % item)
write_out("\n")
-def demo_highlight():
+
+def _demo_highlight(reverse=False):
rxs = [
'(b+).*\\1',
'(c+).*\\1',
@@ -61,22 +62,38 @@ fffeeedddcccbbbaaabbbcccdddeeefff
"""
def display(rxs, s):
spanlists = []
- for rx in rxs:
+ colors = []
+
+ for i, rx in enumerate(rxs):
spanlist = []
for m in re.finditer(rx, s):
spanlist.append(m.span())
spanlists.append(spanlist)
- s = highlight_string(s, *spanlists)
+ colors.append(get_highlighter(i))
+
+ if reverse:
+ colors.reverse()
+
+ s = highlight_string(s, *spanlists, colors=colors)
+
for (i, rx) in enumerate(rxs):
color = get_highlighter(i)
color = colorize(color.__name__.ljust(10), color)
write_out('Regex %s: %s %s\n' % (i, color, rx))
+
write_out(s)
for i in range(0, len(rxs) + 1):
write_out('\n')
display(rxs[:i], s)
+def demo_highlight():
+ _demo_highlight()
+
+def demo_highlight_reverse():
+ _demo_highlight(reverse=True)
+
+
def demo_diff():
def display_diff(s, t):
(s_fmt, t_fmt) = colordiff(s, t)
@@ -103,5 +120,7 @@ if __name__ == '__main__':
demo_color()
elif action == '--highlight':
demo_highlight()
+ elif action == '--highlight-reverse':
+ demo_highlight_reverse()
elif action == '--diff':
demo_diff()
diff --git a/docs/src/changes.rst b/docs/src/changes.rst
index 421c3e7..6f668da 100644
--- a/docs/src/changes.rst
+++ b/docs/src/changes.rst
@@ -2,6 +2,12 @@ Release notes
=============
+0.2.3
+-----
+
+- :func:`ansicolor.highlight_string` accepts a new kwarg `colors`. `color` has been
+ deprecated.
+
0.2.2
-----
diff --git a/tox.ini b/tox.ini
index dab6cc1..301ba23 100644
--- a/tox.ini
+++ b/tox.ini
@@ -8,5 +8,6 @@ commands=
python -m ansicolor.demos --color
python -m ansicolor.demos --diff
python -m ansicolor.demos --highlight
+ python -m ansicolor.demos --highlight-reverse
py.test
flake8