summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Matusiak <numerodix@gmail.com>2021-05-05 13:53:19 +1000
committerMartin Matusiak <numerodix@gmail.com>2021-05-05 13:53:19 +1000
commit4f7d6f5d7c2c6c682f5b1ab1e09a40c21f7562b8 (patch)
tree96bb46965f2f974559075ad75487569be8a2b947
parenta5fedffab77bdb669face91c756755e83c48159a (diff)
downloadansicolor-4f7d6f5d7c2c6c682f5b1ab1e09a40c21f7562b8.tar.gz
reformat with black
-rw-r--r--README.rst8
-rw-r--r--ansicolor/__init__.py49
-rw-r--r--ansicolor/ansicolor.py188
-rw-r--r--ansicolor/demos.py114
-rw-r--r--dev-requirements.txt1
-rw-r--r--setup.py26
-rw-r--r--tests/test_colors.py245
-rw-r--r--tests/test_imports.py1
8 files changed, 337 insertions, 295 deletions
diff --git a/README.rst b/README.rst
index 3f64943..207fe84 100644
--- a/README.rst
+++ b/README.rst
@@ -117,3 +117,11 @@ Checking code style
.. code:: bash
$ flake8 ansicolor
+
+
+Re-formatting code
+^^^^^^^^^^^^^^^^^^
+
+.. code:: bash
+
+ $ black ansicolor tests
diff --git a/ansicolor/__init__.py b/ansicolor/__init__.py
index 5b384ed..c56a499 100644
--- a/ansicolor/__init__.py
+++ b/ansicolor/__init__.py
@@ -30,33 +30,28 @@ from ansicolor.ansicolor import Colors
__all__ = [
- 'black',
- 'blue',
- 'cyan',
- 'green',
- 'magenta',
- 'red',
- 'white',
- 'yellow',
-
- 'colorize',
- 'colorize_v2',
- 'get_code',
- 'get_code_v2',
- 'wrap_string',
-
- 'highlight_string',
- 'get_highlighter',
-
- 'strip_escapes',
- 'justify_formatted',
-
- 'colordiff',
- 'set_term_title',
- 'write_out',
- 'write_err',
-
- 'Colors',
+ "black",
+ "blue",
+ "cyan",
+ "green",
+ "magenta",
+ "red",
+ "white",
+ "yellow",
+ "colorize",
+ "colorize_v2",
+ "get_code",
+ "get_code_v2",
+ "wrap_string",
+ "highlight_string",
+ "get_highlighter",
+ "strip_escapes",
+ "justify_formatted",
+ "colordiff",
+ "set_term_title",
+ "write_out",
+ "write_err",
+ "Colors",
]
__major_version__ = "0.3"
diff --git a/ansicolor/ansicolor.py b/ansicolor/ansicolor.py
index 1ac7cec..75f34e6 100644
--- a/ansicolor/ansicolor.py
+++ b/ansicolor/ansicolor.py
@@ -8,33 +8,28 @@ import warnings
__all__ = [ # noqa
- 'black',
- 'blue',
- 'cyan',
- 'green',
- 'magenta',
- 'red',
- 'white',
- 'yellow',
-
- 'colorize',
- 'colorize_v2',
- 'wrap_string',
- 'get_code',
- 'get_code_v2',
-
- 'highlight_string',
- 'get_highlighter',
-
- 'strip_escapes',
- 'justify_formatted',
-
- 'colordiff',
- 'set_term_title',
- 'write_out',
- 'write_err',
-
- 'Colors',
+ "black",
+ "blue",
+ "cyan",
+ "green",
+ "magenta",
+ "red",
+ "white",
+ "yellow",
+ "colorize",
+ "colorize_v2",
+ "wrap_string",
+ "get_code",
+ "get_code_v2",
+ "highlight_string",
+ "get_highlighter",
+ "strip_escapes",
+ "justify_formatted",
+ "colordiff",
+ "set_term_title",
+ "write_out",
+ "write_err",
+ "Colors",
]
@@ -43,7 +38,8 @@ _disabled = (not os.environ.get("TERM")) or (os.environ.get("TERM") == "dumb")
class Colors(object):
- '''Container class for colors'''
+ """Container class for colors"""
+
@classmethod
def new(cls, colorname):
try:
@@ -78,14 +74,18 @@ Colors.new("White")
def make_func(color):
def f(s, bold=False, reverse=False):
return colorize(s, color, bold=bold, reverse=reverse)
- f.__doc__ = """
+
+ f.__doc__ = (
+ """
Colorize string in %s
:param string s: The string to colorize.
:param bool bold: Whether to mark up in bold.
:param bool reverse: Whether to mark up in reverse video.
:rtype: string
- """ % color.__name__.lower()
+ """
+ % color.__name__.lower()
+ )
return f
@@ -100,7 +100,7 @@ highlights = [
Colors.Cyan,
Colors.Blue,
Colors.Magenta,
- Colors.Red
+ Colors.Red,
]
highlight_map = {}
@@ -119,6 +119,7 @@ def get_highlighter(colorid):
return highlight_map[colorid % len(highlights)]
+
def get_code(color, bold=False, reverse=False):
"""
Returns the escape code for styling with the given color,
@@ -134,19 +135,19 @@ def get_code(color, bold=False, reverse=False):
if _disabled:
return ""
- fmt = '0;0'
+ fmt = "0;0"
if bold and reverse:
- fmt = '1;7'
+ fmt = "1;7"
elif reverse:
- fmt = '0;7'
+ fmt = "0;7"
elif bold:
- fmt = '0;1'
- color = (color is not None) and ';3%s' % color.id or ''
+ fmt = "0;1"
+ color = (color is not None) and ";3%s" % color.id or ""
+
+ return "\033[" + fmt + color + "m"
- return '\033[' + fmt + color + 'm'
-def get_code_v2(color, bold=False, reverse=False, underline=False,
- blink=False):
+def get_code_v2(color, bold=False, reverse=False, underline=False, blink=False):
"""
Returns the escape code for styling with the given color,
in bold and/or reverse.
@@ -162,22 +163,23 @@ def get_code_v2(color, bold=False, reverse=False, underline=False,
if _disabled:
return ""
- fmt = '0'
+ fmt = "0"
items = []
if bold:
- items.append('1')
+ items.append("1")
if underline:
- items.append('4')
+ items.append("4")
if blink:
- items.append('5')
+ items.append("5")
if reverse:
- items.append('7')
+ items.append("7")
if len(items) != 0:
- fmt = ';'.join(items)
+ fmt = ";".join(items)
- color = (color is not None) and ';3%s' % color.id or ''
+ color = (color is not None) and ";3%s" % color.id or ""
+
+ return "\033[" + fmt + color + "m"
- return '\033[' + fmt + color + 'm'
def colorize(s, color, bold=False, reverse=False, start=None, end=None):
"""
@@ -200,14 +202,25 @@ def colorize(s, color, bold=False, reverse=False, start=None, end=None):
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 colorize_v2(s, color, bold=False, reverse=False, underline=False,
- blink=False, start=None, end=None):
+ return "%s%s%s%s%s" % (
+ before,
+ get_code(color, bold=bold, reverse=reverse),
+ between,
+ get_code(None),
+ after,
+ )
+
+
+def colorize_v2(
+ s,
+ color,
+ bold=False,
+ reverse=False,
+ underline=False,
+ blink=False,
+ start=None,
+ end=None,
+):
"""
Colorize a string with the color given.
:param string s: The string to colorize.
@@ -229,17 +242,15 @@ def colorize_v2(s, color, bold=False, reverse=False, underline=False,
between = s[start:end]
after = s[end:]
- return ("%s%s%s%s%s" % (before,
- get_code_v2(
- color,
- bold=bold,
- underline=underline,
- blink=blink,
- reverse=reverse
- ),
- between,
- get_code_v2(None),
- after))
+ return "%s%s%s%s%s" % (
+ before,
+ get_code_v2(
+ color, bold=bold, underline=underline, blink=blink, reverse=reverse
+ ),
+ between,
+ get_code_v2(None),
+ after,
+ )
def wrap_string(s, pos, color, bold=False, reverse=False):
@@ -263,12 +274,14 @@ def wrap_string(s, pos, color, bold=False, reverse=False):
if _disabled:
if pos == 0:
pos = 1
- return s[:pos - 1] + "|" + s[pos:]
+ return s[: pos - 1] + "|" + s[pos:]
- return "%s%s%s%s" % (get_code(color, bold=bold, reverse=reverse),
- s[:pos],
- get_code(None),
- s[pos:])
+ return "%s%s%s%s" % (
+ get_code(color, bold=bold, reverse=reverse),
+ s[:pos],
+ get_code(None),
+ s[pos:],
+ )
def highlight_string(s, *spanlists, **kw):
@@ -286,7 +299,7 @@ def highlight_string(s, *spanlists, **kw):
The `color` parameter has been deprecated in favor of `colors`.
"""
- colors = kw.get('colors', [])
+ colors = kw.get("colors", [])
# pair span with color and id of the list -> (span, color, list_id)
tuples = []
@@ -345,13 +358,13 @@ def highlight_string(s, *spanlists, **kw):
# allow bold/reverse/nocolor styling as parameters
if color:
- if kw.get('color'):
- color = kw.get('color')
+ if kw.get("color"):
+ color = kw.get("color")
warnings.warn("color is deprecated", DeprecationWarning, 2)
- elif kw.get('nocolor'):
+ elif kw.get("nocolor"):
color = None
- bold = kw.get('bold') or bold
- reverse = kw.get('reverse') or reverse
+ bold = kw.get("bold") or bold
+ reverse = kw.get("reverse") or reverse
if layer == 2:
bold = True
@@ -367,7 +380,7 @@ def highlight_string(s, *spanlists, **kw):
cursor = pos
segments.append(s[cursor:])
- return ''.join(segments)
+ return "".join(segments)
def colordiff(x, y, color_x=Colors.Cyan, color_y=Colors.Green, debug=False):
@@ -392,9 +405,9 @@ def colordiff(x, y, color_x=Colors.Cyan, color_y=Colors.Green, debug=False):
rather than the longest common subsequence, but this just causes the
diff to show more changed characters, the result is still correct"""
sm = difflib.SequenceMatcher(None, x, y)
- seq = ''
+ seq = ""
for match in sm.get_matching_blocks():
- seq += x[match.a:match.a + match.size]
+ seq += x[match.a : match.a + match.size]
return seq
def make_generator(it):
@@ -433,31 +446,31 @@ def colordiff(x, y, color_x=Colors.Cyan, color_y=Colors.Green, debug=False):
# character the same in all sets
# -> unchanged
if s == a == b:
- log(' %s' % s)
+ log(" %s" % s)
(sid, s) = it_seq()
(aid, a) = it_x()
(bid, b) = it_y()
# character the same in orig and common
# -> added in new
elif s == a:
- log('+%s' % b)
+ log("+%s" % b)
y_spans.append((bid, bid + 1))
(bid, b) = it_y()
# character the same in new and common
# -> removed in orig
elif s == b:
- log('-%s' % a)
+ log("-%s" % a)
x_spans.append((aid, aid + 1))
(aid, a) = it_x()
# character not the same (eg. case change)
# -> removed in orig and added in new
elif a != b:
if a:
- log('-%s' % a)
+ log("-%s" % a)
x_spans.append((aid, aid + 1))
(aid, a) = it_x()
if b:
- log('+%s' % b)
+ log("+%s" % b)
y_spans.append((bid, bid + 1))
(bid, b) = it_y()
@@ -489,7 +502,7 @@ def strip_escapes(s):
:rtype: string
"""
- return re.sub('\033\[(?:(?:[0-9]*;)*)(?:[0-9]*m)', '', s)
+ return re.sub("\033\[(?:(?:[0-9]*;)*)(?:[0-9]*m)", "", s)
# Output functions
@@ -503,6 +516,7 @@ def set_term_title(s):
if not _disabled:
sys.stdout.write("\033]2;%s\007" % s)
+
def write_to(target, s):
# assuming we have escapes in the string
if not _disabled:
@@ -511,6 +525,7 @@ def write_to(target, s):
target.write(s)
target.flush()
+
def write_out(s):
"""
Write a string to ``sys.stdout``, strip escapes if output is a pipe.
@@ -520,6 +535,7 @@ def write_out(s):
write_to(sys.stdout, s)
+
def write_err(s):
"""
Write a string to ``sys.stderr``, strip escapes if output is a pipe.
diff --git a/ansicolor/demos.py b/ansicolor/demos.py
index d724250..69bba6b 100644
--- a/ansicolor/demos.py
+++ b/ansicolor/demos.py
@@ -17,92 +17,129 @@ def demo_color():
lst = []
- lst.extend([[], ['>>> Without colors'], []])
+ lst.extend([[], [">>> Without colors"], []])
line = []
line.append(colorize("Standard".ljust(width), None))
line.append(colorize("Bold".ljust(width), None, bold=True))
line.append(colorize("Reverse".ljust(width), None, reverse=True))
- line.append(colorize("Bold & Rev".ljust(width), None, bold=True, reverse=True)) # noqa
+ line.append(
+ colorize("Bold & Rev".ljust(width), None, bold=True, reverse=True)
+ ) # noqa
lst.append(line)
- lst.extend([[], ['>>> Using colors'], []])
+ lst.extend([[], [">>> Using colors"], []])
for color in Colors.iter():
line = []
line.append(colorize(color.__name__.ljust(width), color))
line.append(colorize(color.__name__.ljust(width), color, bold=True)) # noqa
line.append(colorize(color.__name__.ljust(width), color, reverse=True)) # noqa
- line.append(colorize(color.__name__.ljust(width), color, bold=True, reverse=True)) # noqa
+ line.append(
+ colorize(color.__name__.ljust(width), color, bold=True, reverse=True)
+ ) # noqa
lst.append(line)
- lst.extend([[], ['>>> Using highlighting colors'], []])
+ lst.extend([[], [">>> Using highlighting colors"], []])
for color in Colors.iter():
color = get_highlighter(color.id)
line = []
line.append(colorize(color.__name__.ljust(width), color))
line.append(colorize(color.__name__.ljust(width), color, bold=True)) # noqa
line.append(colorize(color.__name__.ljust(width), color, reverse=True)) # noqa
- line.append(colorize(color.__name__.ljust(width), color, bold=True, reverse=True)) # noqa
+ line.append(
+ colorize(color.__name__.ljust(width), color, bold=True, reverse=True)
+ ) # noqa
lst.append(line)
for line in lst:
for item in line:
- write_out('%s ' % item)
+ write_out("%s " % item)
write_out("\n")
+
def demo_color_v2():
width = 10
lst = []
- lst.extend([[], ['>>> Without colors'], []])
+ lst.extend([[], [">>> Without colors"], []])
line = []
line.append(colorize_v2("Standard".ljust(width), None))
line.append(colorize_v2("Bold".ljust(width), None, bold=True))
line.append(colorize_v2("Underline".ljust(width), None, underline=True))
line.append(colorize_v2("Blink".ljust(width), None, blink=True))
line.append(colorize_v2("Reverse".ljust(width), None, reverse=True))
- line.append(colorize_v2("Bold & Rev".ljust(width), None, bold=True, underline=True, reverse=True)) # noqa
+ line.append(
+ colorize_v2(
+ "Bold & Rev".ljust(width), None, bold=True, underline=True, reverse=True
+ )
+ ) # noqa
lst.append(line)
- lst.extend([[], ['>>> Using colors_v2'], []])
+ lst.extend([[], [">>> Using colors_v2"], []])
for color in Colors.iter():
line = []
line.append(colorize_v2(color.__name__.ljust(width), color))
line.append(colorize_v2(color.__name__.ljust(width), color, bold=True)) # noqa
- line.append(colorize_v2(color.__name__.ljust(width), color, underline=True)) # noqa
+ line.append(
+ colorize_v2(color.__name__.ljust(width), color, underline=True)
+ ) # noqa
line.append(colorize_v2(color.__name__.ljust(width), color, blink=True)) # noqa
- line.append(colorize_v2(color.__name__.ljust(width), color, reverse=True)) # noqa
- line.append(colorize_v2(color.__name__.ljust(width), color, bold=True, underline=True, reverse=True)) # noqa
+ line.append(
+ colorize_v2(color.__name__.ljust(width), color, reverse=True)
+ ) # noqa
+ line.append(
+ colorize_v2(
+ color.__name__.ljust(width),
+ color,
+ bold=True,
+ underline=True,
+ reverse=True,
+ )
+ ) # noqa
lst.append(line)
- lst.extend([[], ['>>> Using highlighting colors_v2'], []])
+ lst.extend([[], [">>> Using highlighting colors_v2"], []])
for color in Colors.iter():
color = get_highlighter(color.id)
line = []
line.append(colorize_v2(color.__name__.ljust(width), color))
line.append(colorize_v2(color.__name__.ljust(width), color, bold=True)) # noqa
- line.append(colorize_v2(color.__name__.ljust(width), color, underline=True)) # noqa
+ line.append(
+ colorize_v2(color.__name__.ljust(width), color, underline=True)
+ ) # noqa
line.append(colorize_v2(color.__name__.ljust(width), color, blink=True)) # noqa
- line.append(colorize_v2(color.__name__.ljust(width), color, reverse=True)) # noqa
- line.append(colorize_v2(color.__name__.ljust(width), color, bold=True, underline=True, reverse=True)) # noqa
+ line.append(
+ colorize_v2(color.__name__.ljust(width), color, reverse=True)
+ ) # noqa
+ line.append(
+ colorize_v2(
+ color.__name__.ljust(width),
+ color,
+ bold=True,
+ underline=True,
+ reverse=True,
+ )
+ ) # noqa
lst.append(line)
for line in lst:
for item in line:
- write_out('%s ' % item)
+ write_out("%s " % item)
write_out("\n")
+
def _demo_highlight(reverse=False):
rxs = [
- '(b+).*\\1',
- '(c+).*\\1',
- '(d+).*\\1',
- '(e+).*\\1',
+ "(b+).*\\1",
+ "(c+).*\\1",
+ "(d+).*\\1",
+ "(e+).*\\1",
]
s = """\
aaabbbcccdddeeefffeeedddcccbbbaaa
fffeeedddcccbbbaaabbbcccdddeeefff
"""
+
def display(rxs, s):
spanlists = []
colors = []
@@ -122,17 +159,19 @@ fffeeedddcccbbbaaabbbcccdddeeefff
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("Regex %s: %s %s\n" % (i, color, rx))
write_out(s)
for i in range(0, len(rxs) + 1):
- write_out('\n')
+ write_out("\n")
display(rxs[:i], s)
+
def demo_highlight():
_demo_highlight()
+
def demo_highlight_reverse():
_demo_highlight(reverse=True)
@@ -140,31 +179,30 @@ def demo_highlight_reverse():
def demo_diff():
def display_diff(s, t):
(s_fmt, t_fmt) = colordiff(s, t)
- write_out('>>> %s\n' % s_fmt)
- write_out(' %s\n\n' % t_fmt)
-
- display_diff('first last', 'First Last')
- display_diff('the the boss', 'the boss')
- display_diff('the coder', 'the first coder')
- display_diff('agcat', 'gac')
- display_diff('XMJYAUZ', 'MZJAWXU')
- display_diff('abcdfghjqz', 'abcdefgijkrxyz')
+ write_out(">>> %s\n" % s_fmt)
+ write_out(" %s\n\n" % t_fmt)
+ display_diff("first last", "First Last")
+ display_diff("the the boss", "the boss")
+ display_diff("the coder", "the first coder")
+ display_diff("agcat", "gac")
+ display_diff("XMJYAUZ", "MZJAWXU")
+ display_diff("abcdfghjqz", "abcdefgijkrxyz")
-if __name__ == '__main__':
+if __name__ == "__main__":
try:
action = sys.argv[1]
except IndexError:
print("Usage: %s [ --color | --highlight | --diff ]" % sys.argv[0])
sys.exit(1)
- if action == '--color':
+ if action == "--color":
demo_color()
demo_color_v2()
- elif action == '--highlight':
+ elif action == "--highlight":
demo_highlight()
- elif action == '--highlight-reverse':
+ elif action == "--highlight-reverse":
demo_highlight_reverse()
- elif action == '--diff':
+ elif action == "--diff":
demo_diff()
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 81c0d2b..6314841 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,3 +1,4 @@
+black
cheesecake
flake8
ipdb
diff --git a/setup.py b/setup.py
index d90d815..5f3955d 100644
--- a/setup.py
+++ b/setup.py
@@ -4,26 +4,24 @@ import ansicolor
setup(
- name='ansicolor',
+ name="ansicolor",
version=ansicolor.__version__,
description=(
- 'A library to produce ansi color output '
- 'and colored highlighting and diffing'
+ "A library to produce ansi color output and colored highlighting and diffing"
),
- author='Martin Matusiak',
- author_email='numerodix@gmail.com',
- url='https://github.com/numerodix/ansicolor',
-
+ author="Martin Matusiak",
+ author_email="numerodix@gmail.com",
+ url="https://github.com/numerodix/ansicolor",
packages=[
- 'ansicolor',
+ "ansicolor",
],
classifiers=[
- 'License :: OSI Approved :: Apache Software License',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.8',
- 'Programming Language :: Python :: 3.9',
- 'Programming Language :: Python :: Implementation :: CPython',
+ "License :: OSI Approved :: Apache Software License",
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: Implementation :: CPython",
],
# don't install as zipped egg
zip_safe=False,
diff --git a/tests/test_colors.py b/tests/test_colors.py
index ba43a5f..37c53e3 100644
--- a/tests/test_colors.py
+++ b/tests/test_colors.py
@@ -4,18 +4,18 @@ from ansicolor import Colors
from ansicolor import blue
from ansicolor import colordiff
from ansicolor import colorize
+from ansicolor import colorize_v2
from ansicolor import get_code
+from ansicolor import get_code_v2
from ansicolor import get_highlighter
+from ansicolor import highlight_string
from ansicolor import justify_formatted
from ansicolor import red
+from ansicolor import set_term_title
from ansicolor import strip_escapes
from ansicolor import wrap_string
-from ansicolor import get_code_v2
-from ansicolor import colorize_v2
-from ansicolor import highlight_string
-from ansicolor import set_term_title
-from ansicolor import write_out
from ansicolor import write_err
+from ansicolor import write_out
import ansicolor
@@ -33,72 +33,84 @@ def disabled_state():
def test_codes():
# reset code
- assert '\033[0;0m' == get_code(None)
+ assert "\033[0;0m" == get_code(None)
# plain color codes
- assert '\033[0;0;30m' == get_code(Colors.Black)
- assert '\033[0;0;31m' == get_code(Colors.Red)
- assert '\033[0;0;32m' == get_code(Colors.Green)
- assert '\033[0;0;33m' == get_code(Colors.Yellow)
- assert '\033[0;0;34m' == get_code(Colors.Blue)
- assert '\033[0;0;35m' == get_code(Colors.Magenta)
- assert '\033[0;0;36m' == get_code(Colors.Cyan)
- assert '\033[0;0;37m' == get_code(Colors.White)
+ assert "\033[0;0;30m" == get_code(Colors.Black)
+ assert "\033[0;0;31m" == get_code(Colors.Red)
+ assert "\033[0;0;32m" == get_code(Colors.Green)
+ assert "\033[0;0;33m" == get_code(Colors.Yellow)
+ assert "\033[0;0;34m" == get_code(Colors.Blue)
+ assert "\033[0;0;35m" == get_code(Colors.Magenta)
+ assert "\033[0;0;36m" == get_code(Colors.Cyan)
+ assert "\033[0;0;37m" == get_code(Colors.White)
# bold color
- assert '\033[0;1;31m' == get_code(Colors.Red, bold=True)
+ assert "\033[0;1;31m" == get_code(Colors.Red, bold=True)
# reverse color
- assert '\033[0;7;31m' == get_code(Colors.Red, reverse=True)
+ assert "\033[0;7;31m" == get_code(Colors.Red, reverse=True)
# bold + reverse color
- assert '\033[1;7;31m' == get_code(Colors.Red, bold=True, reverse=True)
+ assert "\033[1;7;31m" == get_code(Colors.Red, bold=True, reverse=True)
+
def test_codes_disabled():
with disabled_state():
- assert '' == get_code(Colors.Black)
+ assert "" == get_code(Colors.Black)
+
def test_codes_v2():
# reset code
- assert '\033[0m' == get_code_v2(None)
+ assert "\033[0m" == get_code_v2(None)
# plain color codes
- assert '\033[0;30m' == get_code_v2(Colors.Black)
- assert '\033[0;31m' == get_code_v2(Colors.Red)
- assert '\033[0;32m' == get_code_v2(Colors.Green)
- assert '\033[0;33m' == get_code_v2(Colors.Yellow)
- assert '\033[0;34m' == get_code_v2(Colors.Blue)
- assert '\033[0;35m' == get_code_v2(Colors.Magenta)
- assert '\033[0;36m' == get_code_v2(Colors.Cyan)
- assert '\033[0;37m' == get_code_v2(Colors.White)
+ assert "\033[0;30m" == get_code_v2(Colors.Black)
+ assert "\033[0;31m" == get_code_v2(Colors.Red)
+ assert "\033[0;32m" == get_code_v2(Colors.Green)
+ assert "\033[0;33m" == get_code_v2(Colors.Yellow)
+ assert "\033[0;34m" == get_code_v2(Colors.Blue)
+ assert "\033[0;35m" == get_code_v2(Colors.Magenta)
+ assert "\033[0;36m" == get_code_v2(Colors.Cyan)
+ assert "\033[0;37m" == get_code_v2(Colors.White)
# bold, underline, blink, reverse color
- assert '\033[1;31m' == get_code_v2(Colors.Red, bold=True)
- assert '\033[4;31m' == get_code_v2(Colors.Red, underline=True)
- assert '\033[5;31m' == get_code_v2(Colors.Red, blink=True)
- assert '\033[7;31m' == get_code_v2(Colors.Red, reverse=True)
+ assert "\033[1;31m" == get_code_v2(Colors.Red, bold=True)
+ assert "\033[4;31m" == get_code_v2(Colors.Red, underline=True)
+ assert "\033[5;31m" == get_code_v2(Colors.Red, blink=True)
+ assert "\033[7;31m" == get_code_v2(Colors.Red, reverse=True)
# mixed color
- assert '\033[1;4;31m' == get_code_v2(Colors.Red, bold=True, underline=True)
- assert '\033[1;5;31m' == get_code_v2(Colors.Red, bold=True, blink=True)
- assert '\033[1;7;31m' == get_code_v2(Colors.Red, bold=True, reverse=True)
+ assert "\033[1;4;31m" == get_code_v2(Colors.Red, bold=True, underline=True)
+ assert "\033[1;5;31m" == get_code_v2(Colors.Red, bold=True, blink=True)
+ assert "\033[1;7;31m" == get_code_v2(Colors.Red, bold=True, reverse=True)
- assert '\033[4;5;31m' == get_code_v2(Colors.Red, underline=True, blink=True)
- assert '\033[4;7;31m' == get_code_v2(Colors.Red, underline=True, reverse=True)
+ assert "\033[4;5;31m" == get_code_v2(Colors.Red, underline=True, blink=True)
+ assert "\033[4;7;31m" == get_code_v2(Colors.Red, underline=True, reverse=True)
- assert '\033[5;7;31m' == get_code_v2(Colors.Red, blink=True, reverse=True)
+ assert "\033[5;7;31m" == get_code_v2(Colors.Red, blink=True, reverse=True)
+
+ assert "\033[1;4;5;31m" == get_code_v2(
+ Colors.Red, bold=True, underline=True, blink=True
+ )
+ assert "\033[1;4;7;31m" == get_code_v2(
+ Colors.Red, bold=True, underline=True, reverse=True
+ )
+ assert "\033[1;5;7;31m" == get_code_v2(
+ Colors.Red, bold=True, blink=True, reverse=True
+ )
+ assert "\033[1;4;5;7;31m" == get_code_v2(
+ Colors.Red, bold=True, underline=True, blink=True, reverse=True
+ )
- assert '\033[1;4;5;31m' == get_code_v2(Colors.Red, bold=True, underline=True, blink=True)
- assert '\033[1;4;7;31m' == get_code_v2(Colors.Red, bold=True, underline=True, reverse=True)
- assert '\033[1;5;7;31m' == get_code_v2(Colors.Red, bold=True, blink=True, reverse=True)
- assert '\033[1;4;5;7;31m' == get_code_v2(Colors.Red, bold=True, underline=True, blink=True, reverse=True)
def test_codes_v2_disabled():
with disabled_state():
- assert '' == get_code_v2(Colors.Black)
+ assert "" == get_code_v2(Colors.Black)
+
def test_coloring():
- assert '\033[0;0;31m' + 'hi' + '\033[0;0m' == red('hi')
+ assert "\033[0;0;31m" + "hi" + "\033[0;0m" == red("hi")
def test_get_hightlighter():
@@ -114,13 +126,10 @@ def test_highlight_string_one_layer():
]
assert (
- 'aaa'
- + get_code(Colors.Green)
- + 'bbb'
- + get_code(None)
- + 'aaa'
+ "aaa" + get_code(Colors.Green) + "bbb" + get_code(None) + "aaa"
) == highlight_string(text, *spanlists)
+
def test_highlight_string_one_color_chosen():
text = "aaabbbaaa"
spanlists = [
@@ -128,13 +137,10 @@ def test_highlight_string_one_color_chosen():
]
assert (
- 'aaa'
- + get_code(Colors.Cyan)
- + 'bbb'
- + get_code(None)
- + 'aaa'
+ "aaa" + get_code(Colors.Cyan) + "bbb" + get_code(None) + "aaa"
) == highlight_string(text, *spanlists, color=Colors.Cyan)
+
def test_highlight_string_nocolor():
text = "aaabbbaaa"
spanlists = [
@@ -142,13 +148,10 @@ def test_highlight_string_nocolor():
]
assert (
- 'aaa'
- + get_code(None)
- + 'bbb'
- + get_code(None)
- + 'aaa'
+ "aaa" + get_code(None) + "bbb" + get_code(None) + "aaa"
) == highlight_string(text, *spanlists, nocolor=True)
+
def test_highlight_string_four_layers_inside_out():
text = "aaabbbcccdddeeefffeeedddcccbbbaaa"
spanlists = [
@@ -165,33 +168,29 @@ def test_highlight_string_four_layers_inside_out():
]
assert (
- 'aaa'
+ "aaa"
+ get_code(Colors.Green)
- + 'bbb'
+ + "bbb"
+ get_code(Colors.Yellow, bold=True)
- + 'ccc'
+ + "ccc"
+ get_code(Colors.Cyan, reverse=True)
- + 'ddd'
+ + "ddd"
+ get_code(Colors.Blue, bold=True, reverse=True)
- + 'eeefffeee'
+ + "eeefffeee"
+ get_code(Colors.Cyan, reverse=True)
- + 'ddd'
+ + "ddd"
+ get_code(Colors.Yellow, bold=True)
- + 'ccc'
+ + "ccc"
+ get_code(Colors.Green)
- + 'bbb'
+ + "bbb"
+ get_code(None)
- + 'aaa'
+ + "aaa"
) == highlight_string(text, *spanlists, colors=colors)
+
def test_highlight_string_four_layers_outside_in():
- text = 'fffeeedddcccbbbaaabbbcccdddeeefff'
- spanlists = [
- [(12, 21)],
- [(9, 24)],
- [(6, 27)],
- [(3, 30)]
- ]
+ text = "fffeeedddcccbbbaaabbbcccdddeeefff"
+ spanlists = [[(12, 21)], [(9, 24)], [(6, 27)], [(3, 30)]]
colors = [
Colors.Green,
Colors.Yellow,
@@ -200,65 +199,53 @@ def test_highlight_string_four_layers_outside_in():
]
assert (
- 'fff'
+ "fff"
+ get_code(Colors.Blue)
- + 'eee'
+ + "eee"
+ get_code(Colors.Blue, bold=True)
- + 'ddd'
+ + "ddd"
+ get_code(Colors.Blue, reverse=True)
- + 'ccc'
+ + "ccc"
+ get_code(Colors.Blue, bold=True, reverse=True)
- + 'bbbaaabbb'
+ + "bbbaaabbb"
+ get_code(Colors.Blue, reverse=True)
- + 'ccc'
+ + "ccc"
+ get_code(Colors.Blue, bold=True)
- + 'ddd'
+ + "ddd"
+ get_code(Colors.Blue)
- + 'eee'
+ + "eee"
+ get_code(None)
- + 'fff'
+ + "fff"
) == highlight_string(text, *spanlists, colors=colors)
def test_colorize():
- assert (
- get_code(Colors.Red)
- + "Hi there"
- + get_code(None)
- ) == colorize("Hi there", Colors.Red)
+ assert (get_code(Colors.Red) + "Hi there" + get_code(None)) == colorize(
+ "Hi there", Colors.Red
+ )
+
def test_colorize_with_start_end():
- assert (
- "H"
- + get_code(Colors.Red)
- + "i ther"
- + get_code(None)
- + "e"
- ) == colorize("Hi there", Colors.Red, start=1, end=7)
+ assert ("H" + get_code(Colors.Red) + "i ther" + get_code(None) + "e") == colorize(
+ "Hi there", Colors.Red, start=1, end=7
+ )
+
def test_colorize_v2():
- assert (
- get_code_v2(Colors.Red)
- + "Hi there"
- + get_code_v2(None)
- ) == colorize_v2("Hi there", Colors.Red)
+ assert (get_code_v2(Colors.Red) + "Hi there" + get_code_v2(None)) == colorize_v2(
+ "Hi there", Colors.Red
+ )
assert (
- "H"
- + get_code_v2(Colors.Red)
- + "i ther"
- + get_code_v2(None)
- + "e"
+ "H" + get_code_v2(Colors.Red) + "i ther" + get_code_v2(None) + "e"
) == colorize_v2("Hi there", Colors.Red, start=1, end=7)
def test_wrap_string():
- assert (
- get_code(Colors.Red)
- + "Hi "
- + get_code(None)
- + "there"
- ) == wrap_string("Hi there", 3, Colors.Red)
+ assert (get_code(Colors.Red) + "Hi " + get_code(None) + "there") == wrap_string(
+ "Hi there", 3, Colors.Red
+ )
+
def test_wrap_string_disabled():
with disabled_state():
@@ -267,20 +254,20 @@ def test_wrap_string_disabled():
def test_strip_escapes():
- assert "Hi there" == strip_escapes(
- colorize("Hi there", Colors.Red, start=3)
- )
+ assert "Hi there" == strip_escapes(colorize("Hi there", Colors.Red, start=3))
- assert strip_escapes(
- colorize("Hi", None, bold=True)
- + " there, "
- + colorize("stranger", Colors.Green, bold=True)
- ) == "Hi there, stranger"
+ assert (
+ strip_escapes(
+ colorize("Hi", None, bold=True)
+ + " there, "
+ + colorize("stranger", Colors.Green, bold=True)
+ )
+ == "Hi there, stranger"
+ )
def test_colordiff_different():
- x, y = colordiff("hi bob", "hi there",
- color_x=Colors.Red, color_y=Colors.Blue)
+ x, y = colordiff("hi bob", "hi there", color_x=Colors.Red, color_y=Colors.Blue)
def fx(s):
return red(s, reverse=True)
@@ -291,9 +278,9 @@ def test_colordiff_different():
assert x == "hi " + fx("b") + fx("o") + fx("b")
assert y == "hi " + fy("t") + fy("h") + fy("e") + fy("r") + fy("e")
+
def test_colordiff_edited():
- x, y = colordiff("hi bobby", "hi bob",
- color_x=Colors.Red, color_y=Colors.Blue)
+ x, y = colordiff("hi bobby", "hi bob", color_x=Colors.Red, color_y=Colors.Blue)
def fx(s):
return red(s, reverse=True)
@@ -306,16 +293,14 @@ def test_justify_formatted():
def rjust(s, width):
return s.rjust(width)
- assert justify_formatted(
- red("hi"), rjust, 10
- ) == " " + red("hi")
+ assert justify_formatted(red("hi"), rjust, 10) == " " + red("hi")
def test_set_term_title(capsys):
- set_term_title('ansicolor demo')
+ set_term_title("ansicolor demo")
captured = capsys.readouterr()
- assert '\033]2;ansicolor demo\007' == captured.out
+ assert "\033]2;ansicolor demo\007" == captured.out
def test_write_out(capfd):
@@ -326,7 +311,7 @@ def test_write_out(capfd):
write_out(text)
captured = capfd.readouterr()
- assert 'Hi there' == captured.out
+ assert "Hi there" == captured.out
def test_write_err(capfd):
@@ -337,4 +322,4 @@ def test_write_err(capfd):
write_err(text)
captured = capfd.readouterr()
- assert 'Hi there' == captured.err
+ assert "Hi there" == captured.err
diff --git a/tests/test_imports.py b/tests/test_imports.py
index ed5f654..4b07ce6 100644
--- a/tests/test_imports.py
+++ b/tests/test_imports.py
@@ -9,6 +9,7 @@ def test_importability():
from ansicolor import yellow # noqa
from ansicolor import Colors # noqa
+
Colors.Black
Colors.Blue
Colors.Cyan