mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
bpo-33718: regrtest: enhance "running:" formatting (GH-7292)
* "running:" progress: Format number of seconds as hours and minutes * format_duration(): count also minutes as hours * Create Lib/test/libregrtest/utils.py
This commit is contained in:
parent
ef634b5b26
commit
7ad16eb51c
3 changed files with 51 additions and 43 deletions
47
Lib/test/libregrtest/utils.py
Normal file
47
Lib/test/libregrtest/utils.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
import os.path
|
||||
import textwrap
|
||||
|
||||
|
||||
def format_duration(seconds):
|
||||
if seconds < 1.0:
|
||||
return '%.0f ms' % (seconds * 1e3)
|
||||
if seconds < 60.0:
|
||||
return '%.0f sec' % seconds
|
||||
|
||||
minutes, seconds = divmod(seconds, 60.0)
|
||||
hours, minutes = divmod(minutes, 60.0)
|
||||
if hours:
|
||||
return '%.0f hour %.0f min' % (hours, minutes)
|
||||
else:
|
||||
return '%.0f min %.0f sec' % (minutes, seconds)
|
||||
|
||||
|
||||
def removepy(names):
|
||||
if not names:
|
||||
return
|
||||
for idx, name in enumerate(names):
|
||||
basename, ext = os.path.splitext(name)
|
||||
if ext == '.py':
|
||||
names[idx] = basename
|
||||
|
||||
|
||||
def count(n, word):
|
||||
if n == 1:
|
||||
return "%d %s" % (n, word)
|
||||
else:
|
||||
return "%d %ss" % (n, word)
|
||||
|
||||
|
||||
def printlist(x, width=70, indent=4, file=None):
|
||||
"""Print the elements of iterable x to stdout.
|
||||
|
||||
Optional arg width (default 70) is the maximum line length.
|
||||
Optional arg indent (default 4) is the number of blanks with which to
|
||||
begin each line.
|
||||
"""
|
||||
|
||||
blanks = ' ' * indent
|
||||
# Print the sorted list: 'x' may be a '--random' list or a set()
|
||||
print(textwrap.fill(' '.join(str(elt) for elt in sorted(x)), width,
|
||||
initial_indent=blanks, subsequent_indent=blanks),
|
||||
file=file)
|
Loading…
Add table
Add a link
Reference in a new issue