diff options
author | Martin Matusiak <numerodix@gmail.com> | 2014-03-12 20:16:33 +0100 |
---|---|---|
committer | Martin Matusiak <numerodix@gmail.com> | 2014-03-12 20:16:33 +0100 |
commit | 3131bf94311dc9cd51b0572492b2393bdd8ab363 (patch) | |
tree | a1e2a1471fc193625d18d99ec9a3fc39b5d1292d | |
parent | 859c1f7bee387eb23659d72f0e36fa883e857686 (diff) | |
parent | 1242eb6819e4a9b423a968cf68afdd6e5dc4f38e (diff) | |
download | ansicolor-3131bf94311dc9cd51b0572492b2393bdd8ab363.tar.gz |
Merge branch 'release/0.2.3'0.2.3
-rw-r--r-- | ansicolor/__init__.py | 2 | ||||
-rw-r--r-- | ansicolor/ansicolor.py | 21 | ||||
-rw-r--r-- | ansicolor/demos.py | 25 | ||||
-rw-r--r-- | docs/src/changes.rst | 6 | ||||
-rw-r--r-- | tox.ini | 1 |
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 ----- @@ -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 |