patman: Rename Color() method to build()

This method has the same name as its class which is confusing. It is also
annoying when searching the code.

It builds a string with a colour, so rename it to build().

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2022-01-29 14:14:17 -07:00
parent 82e0e732ee
commit 252ac58996
11 changed files with 71 additions and 71 deletions

View File

@ -174,7 +174,7 @@ class Bintool:
res = self.fetch(meth)
except urllib.error.URLError as uerr:
message = uerr.reason
print(col.Color(col.RED, f'- {message}'))
print(col.build(col.RED, f'- {message}'))
except ValueError as exc:
print(f'Exception: {exc}')
@ -182,7 +182,7 @@ class Bintool:
if skip_present and self.is_present():
return PRESENT
print(col.Color(col.YELLOW, 'Fetch: %s' % self.name))
print(col.build(col.YELLOW, 'Fetch: %s' % self.name))
if method == FETCH_ANY:
for try_method in range(1, FETCH_COUNT):
print(f'- trying method: {FETCH_NAMES[try_method]}')
@ -216,7 +216,7 @@ class Bintool:
True on success, False on failure
"""
def show_status(color, prompt, names):
print(col.Color(
print(col.build(
color, f'{prompt}:%s{len(names):2}: %s' %
(' ' * (16 - len(prompt)), ' '.join(names))))
@ -227,7 +227,7 @@ class Bintool:
name_list = Bintool.get_tool_list()
if names_to_fetch[0] == 'missing':
skip_present = True
print(col.Color(col.YELLOW,
print(col.build(col.YELLOW,
'Fetching tools: %s' % ' '.join(name_list)))
status = collections.defaultdict(list)
for name in name_list:

View File

@ -518,14 +518,14 @@ class Builder:
# Display separate counts for ok, warned and fail
ok = self.upto - self.warned - self.fail
line = '\r' + self.col.Color(self.col.GREEN, '%5d' % ok)
line += self.col.Color(self.col.YELLOW, '%5d' % self.warned)
line += self.col.Color(self.col.RED, '%5d' % self.fail)
line = '\r' + self.col.build(self.col.GREEN, '%5d' % ok)
line += self.col.build(self.col.YELLOW, '%5d' % self.warned)
line += self.col.build(self.col.RED, '%5d' % self.fail)
line += ' /%-5d ' % self.count
remaining = self.count - self.upto
if remaining:
line += self.col.Color(self.col.MAGENTA, ' -%-5d ' % remaining)
line += self.col.build(self.col.MAGENTA, ' -%-5d ' % remaining)
else:
line += ' ' * 8
@ -933,9 +933,9 @@ class Builder:
arch = board_dict[target].arch
else:
arch = 'unknown'
str = self.col.Color(color, ' ' + target)
str = self.col.build(color, ' ' + target)
if not arch in done_arch:
str = ' %s %s' % (self.col.Color(color, char), str)
str = ' %s %s' % (self.col.build(color, char), str)
done_arch[arch] = True
if not arch in arch_list:
arch_list[arch] = str
@ -947,7 +947,7 @@ class Builder:
color = self.col.RED if num > 0 else self.col.GREEN
if num == 0:
return '0'
return self.col.Color(color, str(num))
return self.col.build(color, str(num))
def ResetResultSummary(self, board_selected):
"""Reset the results summary ready for use.
@ -1010,7 +1010,7 @@ class Builder:
args = [self.ColourNum(x) for x in args]
indent = ' ' * 15
Tprint('%s%s: add: %s/%s, grow: %s/%s bytes: %s/%s (%s)' %
tuple([indent, self.col.Color(self.col.YELLOW, fname)] + args))
tuple([indent, self.col.build(self.col.YELLOW, fname)] + args))
Tprint('%s %-38s %7s %7s %+7s' % (indent, 'function', 'old', 'new',
'delta'))
for diff, name in delta:
@ -1324,12 +1324,12 @@ class Builder:
names = [board.target for board in line.boards]
board_str = ' '.join(names) if names else ''
if board_str:
out = self.col.Color(colour, line.char + '(')
out += self.col.Color(self.col.MAGENTA, board_str,
out = self.col.build(colour, line.char + '(')
out += self.col.build(self.col.MAGENTA, board_str,
bright=False)
out += self.col.Color(colour, ') %s' % line.errline)
out += self.col.build(colour, ') %s' % line.errline)
else:
out = self.col.Color(colour, line.char + line.errline)
out = self.col.build(colour, line.char + line.errline)
out_list.append(out)
Tprint('\n'.join(out_list))
self._error_lines += 1

View File

@ -73,7 +73,7 @@ def ShowActions(series, why_selected, boards_selected, builder, options,
if commits:
for upto in range(0, len(series.commits), options.step):
commit = series.commits[upto]
print(' ', col.Color(col.YELLOW, commit.hash[:8], bright=False), end=' ')
print(' ', col.build(col.YELLOW, commit.hash[:8], bright=False), end=' ')
print(commit.subject)
print()
for arg in why_selected:
@ -85,7 +85,7 @@ def ShowActions(series, why_selected, boards_selected, builder, options,
len(why_selected['all'])))
if board_warnings:
for warning in board_warnings:
print(col.Color(col.YELLOW, warning))
print(col.build(col.YELLOW, warning))
def ShowToolchainPrefix(boards, toolchains):
"""Show information about a the tool chain used by one or more boards
@ -152,14 +152,14 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
if options.fetch_arch:
if options.fetch_arch == 'list':
sorted_list = toolchains.ListArchs()
print(col.Color(col.BLUE, 'Available architectures: %s\n' %
print(col.build(col.BLUE, 'Available architectures: %s\n' %
' '.join(sorted_list)))
return 0
else:
fetch_arch = options.fetch_arch
if fetch_arch == 'all':
fetch_arch = ','.join(toolchains.ListArchs())
print(col.Color(col.CYAN, '\nDownloading toolchains: %s' %
print(col.build(col.CYAN, '\nDownloading toolchains: %s' %
fetch_arch))
for arch in fetch_arch.split(','):
print()
@ -177,11 +177,11 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
return 0
if options.incremental:
print(col.Color(col.RED,
print(col.build(col.RED,
'Warning: -I has been removed. See documentation'))
if not options.output_dir:
if options.work_in_output:
sys.exit(col.Color(col.RED, '-w requires that you specify -o'))
sys.exit(col.build(col.RED, '-w requires that you specify -o'))
options.output_dir = '..'
# Work out what subset of the boards we are building
@ -218,12 +218,12 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
requested_boards)
selected = boards.GetSelected()
if not len(selected):
sys.exit(col.Color(col.RED, 'No matching boards found'))
sys.exit(col.build(col.RED, 'No matching boards found'))
if options.print_prefix:
err = ShowToolchainPrefix(boards, toolchains)
if err:
sys.exit(col.Color(col.RED, err))
sys.exit(col.build(col.RED, err))
return 0
# Work out how many commits to build. We want to build everything on the
@ -242,24 +242,24 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,
count, msg = gitutil.count_commits_in_branch(options.git_dir,
options.branch)
if count is None:
sys.exit(col.Color(col.RED, msg))
sys.exit(col.build(col.RED, msg))
elif count == 0:
sys.exit(col.Color(col.RED, "Range '%s' has no commits" %
sys.exit(col.build(col.RED, "Range '%s' has no commits" %
options.branch))
if msg:
print(col.Color(col.YELLOW, msg))
print(col.build(col.YELLOW, msg))
count += 1 # Build upstream commit also
if not count:
str = ("No commits found to process in branch '%s': "
"set branch's upstream or use -c flag" % options.branch)
sys.exit(col.Color(col.RED, str))
sys.exit(col.build(col.RED, str))
if options.work_in_output:
if len(selected) != 1:
sys.exit(col.Color(col.RED,
sys.exit(col.build(col.RED,
'-w can only be used with a single board'))
if count != 1:
sys.exit(col.Color(col.RED,
sys.exit(col.build(col.RED,
'-w can only be used with a single commit'))
# Read the metadata from the commits. First look at the upstream commit,

View File

@ -182,10 +182,10 @@ class TestBuild(unittest.TestCase):
col.YELLOW if outcome == OUTCOME_WARN else col.RED)
expect = '%10s: ' % arch
# TODO(sjg@chromium.org): If plus is '', we shouldn't need this
expect += ' ' + col.Color(expected_colour, plus)
expect += ' ' + col.build(expected_colour, plus)
expect += ' '
for board in boards:
expect += col.Color(expected_colour, ' %s' % board)
expect += col.build(expected_colour, ' %s' % board)
self.assertEqual(text, expect)
def _SetupTest(self, echo_lines=False, threads=1, **kwdisplay_args):
@ -254,12 +254,12 @@ class TestBuild(unittest.TestCase):
new_lines = []
for line in lines:
if boards:
expect = self._col.Color(colour, prefix + '(')
expect += self._col.Color(self._col.MAGENTA, boards,
expect = self._col.build(colour, prefix + '(')
expect += self._col.build(self._col.MAGENTA, boards,
bright=False)
expect += self._col.Color(colour, ') %s' % line)
expect += self._col.build(colour, ') %s' % line)
else:
expect = self._col.Color(colour, prefix + line)
expect = self._col.build(colour, prefix + line)
new_lines.append(expect)
return '\n'.join(new_lines)
@ -317,12 +317,12 @@ class TestBuild(unittest.TestCase):
self.assertEqual(next(lines).text, '04: %s' % commits[3][1])
if filter_migration_warnings:
expect = '%10s: ' % 'powerpc'
expect += ' ' + col.Color(col.GREEN, '')
expect += ' ' + col.build(col.GREEN, '')
expect += ' '
expect += col.Color(col.GREEN, ' %s' % 'board2')
expect += ' ' + col.Color(col.YELLOW, 'w+')
expect += col.build(col.GREEN, ' %s' % 'board2')
expect += ' ' + col.build(col.YELLOW, 'w+')
expect += ' '
expect += col.Color(col.YELLOW, ' %s' % 'board3')
expect += col.build(col.YELLOW, ' %s' % 'board3')
self.assertEqual(next(lines).text, expect)
else:
self.assertSummary(next(lines).text, 'powerpc', 'w+',

View File

@ -381,7 +381,7 @@ class Toolchains:
def List(self):
"""List out the selected toolchains for each architecture"""
col = terminal.Color()
print(col.Color(col.BLUE, 'List of available toolchains (%d):' %
print(col.build(col.BLUE, 'List of available toolchains (%d):' %
len(self.toolchains)))
if len(self.toolchains):
for key, value in sorted(self.toolchains.items()):
@ -559,7 +559,7 @@ class Toolchains:
"""
# Fist get the URL for this architecture
col = terminal.Color()
print(col.Color(col.BLUE, "Downloading toolchain for arch '%s'" % arch))
print(col.build(col.BLUE, "Downloading toolchain for arch '%s'" % arch))
url = self.LocateArchUrl(arch)
if not url:
print(("Cannot find toolchain for arch '%s' - use 'list' to list" %
@ -574,7 +574,7 @@ class Toolchains:
tarfile, tmpdir = tools.download(url, '.buildman')
if not tarfile:
return 1
print(col.Color(col.GREEN, 'Unpacking to: %s' % dest), end=' ')
print(col.build(col.GREEN, 'Unpacking to: %s' % dest), end=' ')
sys.stdout.flush()
path = self.Unpack(tarfile, dest)
os.remove(tarfile)
@ -582,14 +582,14 @@ class Toolchains:
print()
# Check that the toolchain works
print(col.Color(col.GREEN, 'Testing'))
print(col.build(col.GREEN, 'Testing'))
dirpath = os.path.join(dest, path)
compiler_fname_list = self.ScanPath(dirpath, True)
if not compiler_fname_list:
print('Could not locate C compiler - fetch failed.')
return 1
if len(compiler_fname_list) != 1:
print(col.Color(col.RED, 'Warning, ambiguous toolchains: %s' %
print(col.build(col.RED, 'Warning, ambiguous toolchains: %s' %
', '.join(compiler_fname_list)))
toolchain = Toolchain(compiler_fname_list[0], True, True)

View File

@ -228,11 +228,11 @@ def get_warning_msg(col, msg_type, fname, line, msg):
msg: Message to report
'''
if msg_type == 'warning':
msg_type = col.Color(col.YELLOW, msg_type)
msg_type = col.build(col.YELLOW, msg_type)
elif msg_type == 'error':
msg_type = col.Color(col.RED, msg_type)
msg_type = col.build(col.RED, msg_type)
elif msg_type == 'check':
msg_type = col.Color(col.MAGENTA, msg_type)
msg_type = col.build(col.MAGENTA, msg_type)
line_str = '' if line is None else '%d' % line
return '%s:%s: %s: %s\n' % (fname, line_str, msg_type, msg)
@ -248,7 +248,7 @@ def check_patches(verbose, args):
warning_count += result.warnings
check_count += result.checks
print('%d errors, %d warnings, %d checks for %s:' % (result.errors,
result.warnings, result.checks, col.Color(col.BLUE, fname)))
result.warnings, result.checks, col.build(col.BLUE, fname)))
if (len(result.problems) != result.errors + result.warnings +
result.checks):
print("Internal error: some problems lost")
@ -266,6 +266,6 @@ def check_patches(verbose, args):
color = col.YELLOW
if error_count:
color = col.RED
print(col.Color(color, str % (error_count, warning_count, check_count)))
print(col.build(color, str % (error_count, warning_count, check_count)))
return False
return True

View File

@ -50,7 +50,7 @@ def prepare_patches(col, branch, count, start, end, ignore_binary, signoff):
if not count:
str = 'No commits found to process - please use -c flag, or run:\n' \
' git branch --set-upstream-to remote/branch'
sys.exit(col.Color(col.RED, str))
sys.exit(col.build(col.RED, str))
# Read the metadata from the commits
to_do = count - end
@ -143,13 +143,13 @@ def email_patches(col, series, cover_fname, patch_files, process_tags, its_a_go,
cc_file, in_reply_to=in_reply_to, thread=thread,
smtp_server=smtp_server)
else:
print(col.Color(col.RED, "Not sending emails due to errors/warnings"))
print(col.build(col.RED, "Not sending emails due to errors/warnings"))
# For a dry run, just show our actions as a sanity check
if dry_run:
series.ShowActions(patch_files, cmd, process_tags)
if not its_a_go:
print(col.Color(col.RED, "Email would not be sent"))
print(col.build(col.RED, "Email would not be sent"))
os.remove(cc_file)

View File

@ -404,7 +404,7 @@ def check_suppress_cc_config():
if suppresscc == 'all' or suppresscc == 'cccmd':
col = terminal.Color()
print((col.Color(col.RED, "error") +
print((col.build(col.RED, "error") +
": git config sendemail.suppresscc set to %s\n" % (suppresscc)) +
" patman needs --cc-cmd to be run to set the cc list.\n" +
" Please run:\n" +
@ -577,14 +577,14 @@ def lookup_email(lookup_name, alias=None, warn_on_error=True, level=0):
if warn_on_error:
raise OSError(msg)
else:
print(col.Color(col.RED, msg))
print(col.build(col.RED, msg))
return out_list
if lookup_name:
if not lookup_name in alias:
msg = "Alias '%s' not found" % lookup_name
if warn_on_error:
print(col.Color(col.RED, msg))
print(col.build(col.RED, msg))
return out_list
for item in alias[lookup_name]:
todo = lookup_email(item, alias, warn_on_error, level + 1)

View File

@ -118,11 +118,11 @@ class Series(dict):
# TODO: Colour the patches according to whether they passed checks
for upto in range(len(args)):
commit = self.commits[upto]
print(col.Color(col.GREEN, ' %s' % args[upto]))
print(col.build(col.GREEN, ' %s' % args[upto]))
cc_list = list(self._generated_cc[commit.patch])
for email in sorted(set(cc_list) - to_set - cc_set):
if email == None:
email = col.Color(col.YELLOW, "<alias '%s' not found>"
email = col.build(col.YELLOW, "<alias '%s' not found>"
% tag)
if email:
print(' Cc: ', email)
@ -227,13 +227,13 @@ class Series(dict):
else:
if version > 1:
str = 'Change log missing for v%d' % version
print(col.Color(col.RED, str))
print(col.build(col.RED, str))
for version in changes_copy:
str = 'Change log for unknown version v%d' % version
print(col.Color(col.RED, str))
print(col.build(col.RED, str))
elif self.changes:
str = 'Change log exists, but no version is set'
print(col.Color(col.RED, str))
print(col.build(col.RED, str))
def MakeCcFile(self, process_tags, cover_fname, warn_on_error,
add_maintainers, limit):
@ -271,7 +271,7 @@ class Series(dict):
dir_list = [os.path.join(gitutil.get_top_level(), 'scripts')]
cc += get_maintainer.get_maintainer(dir_list, commit.patch)
for x in set(cc) & set(settings.bounces):
print(col.Color(col.YELLOW, 'Skipping "%s"' % x))
print(col.build(col.YELLOW, 'Skipping "%s"' % x))
cc = list(set(cc) - set(settings.bounces))
if limit is not None:
cc = cc[:limit]

View File

@ -64,7 +64,7 @@ def CalcAsciiLen(text):
Length of text, after skipping ANSI sequences
>>> col = Color(COLOR_ALWAYS)
>>> text = col.Color(Color.RED, 'abc')
>>> text = col.build(Color.RED, 'abc')
>>> len(text)
14
>>> CalcAsciiLen(text)
@ -73,7 +73,7 @@ def CalcAsciiLen(text):
>>> text += 'def'
>>> CalcAsciiLen(text)
6
>>> text += col.Color(Color.RED, 'abc')
>>> text += col.build(Color.RED, 'abc')
>>> CalcAsciiLen(text)
9
"""
@ -87,7 +87,7 @@ def TrimAsciiLen(text, size):
calculation.
>>> col = Color(COLOR_ALWAYS)
>>> text = col.Color(Color.RED, 'abc')
>>> text = col.build(Color.RED, 'abc')
>>> len(text)
14
>>> CalcAsciiLen(TrimAsciiLen(text, 4))
@ -97,7 +97,7 @@ def TrimAsciiLen(text, size):
>>> text += 'def'
>>> CalcAsciiLen(TrimAsciiLen(text, 4))
4
>>> text += col.Color(Color.RED, 'ghi')
>>> text += col.build(Color.RED, 'ghi')
>>> CalcAsciiLen(TrimAsciiLen(text, 7))
7
"""
@ -148,7 +148,7 @@ def Tprint(text='', newline=True, colour=None, limit_to_line=False, bright=True)
else:
if colour:
col = Color()
text = col.Color(colour, text, bright=bright)
text = col.build(colour, text, bright=bright)
if newline:
print(text)
last_print_len = None
@ -191,7 +191,7 @@ def EchoPrintTestLines():
for line in print_test_list:
if line.colour:
col = Color()
print(col.Color(line.colour, line.text), end='')
print(col.build(line.colour, line.text), end='')
else:
print(line.text, end='')
if line.newline:
@ -247,7 +247,7 @@ class Color(object):
return self.RESET
return ''
def Color(self, color, text, bright=True):
def build(self, color, text, bright=True):
"""Returns text with conditionally added color escape sequences.
Keyword arguments:

View File

@ -64,7 +64,7 @@ def progress(msg, warning=False, trailer='...'):
_progress = msg + trailer
if stdout_is_tty:
col = _color.YELLOW if warning else _color.GREEN
_stdout.write('\r' + _color.Color(col, _progress))
_stdout.write('\r' + _color.build(col, _progress))
_stdout.flush()
in_progress = True
else:
@ -82,7 +82,7 @@ def _output(level, msg, color=None):
if verbose >= level:
clear_progress()
if color:
msg = _color.Color(color, msg)
msg = _color.build(color, msg)
if level < NOTICE:
print(msg, file=sys.stderr)
else: