Added additional unit flexibility for download/upload speeds.
This commit is contained in:
parent
22210ca352
commit
8fcd4a019e
46
speedtest.py
46
speedtest.py
|
@ -59,6 +59,18 @@ PY25PLUS = sys.version_info[:2] >= (2, 5)
|
|||
PY26PLUS = sys.version_info[:2] >= (2, 6)
|
||||
PY32PLUS = sys.version_info[:2] >= (3, 2)
|
||||
PY310PLUS = sys.version_info[:2] >= (3, 10)
|
||||
SIZEMAP = {
|
||||
"Mibyte": 8. * 1024 * 1024,
|
||||
"Mbyte": 8. * 1000 * 1000,
|
||||
"Mibit": 1. * 1024 * 1024,
|
||||
"Mbit": 1. * 1000 * 1000,
|
||||
"Kibyte": 8. * 1024,
|
||||
"Kbyte": 8. * 1000,
|
||||
"Kibit": 1. * 1024,
|
||||
"Kbit": 1. * 1000,
|
||||
"byte": 8.,
|
||||
"bit": 1.,
|
||||
}
|
||||
|
||||
# Begin import game to handle Python 2 and Python 3
|
||||
try:
|
||||
|
@ -1733,11 +1745,14 @@ def parse_args():
|
|||
help='Only use a single connection instead of '
|
||||
'multiple. This simulates a typical file '
|
||||
'transfer.')
|
||||
parser.add_argument('--bytes', dest='units', action='store_const',
|
||||
const=('byte', 8), default=('bit', 1),
|
||||
parser.add_argument('--bytes', default=False, action='store_true',
|
||||
help='Display values in bytes instead of bits. Does '
|
||||
'not affect the image generated by --share, nor '
|
||||
'output from --json or --csv')
|
||||
parser.add_argument('--units', choices=tuple(SIZEMAP),
|
||||
help='Determines which units to display values in. Does '
|
||||
'not affect the image generated by --share, nor '
|
||||
'output from --json or --csv')
|
||||
parser.add_argument('--share', action='store_true',
|
||||
help='Generate and provide a URL to the speedtest.net '
|
||||
'share results image, not displayed with --csv')
|
||||
|
@ -1747,7 +1762,7 @@ def parse_args():
|
|||
parser.add_argument('--csv', action='store_true', default=False,
|
||||
help='Suppress verbose output, only show basic '
|
||||
'information in CSV format. Speeds listed in '
|
||||
'bit/s and not affected by --bytes')
|
||||
'bit/s and not affected by --bytes or --units')
|
||||
parser.add_argument('--csv-delimiter', default=',', type=PARSER_TYPE_STR,
|
||||
help='Single character delimiter to use in CSV '
|
||||
'output. Default ","')
|
||||
|
@ -1756,7 +1771,7 @@ def parse_args():
|
|||
parser.add_argument('--json', action='store_true', default=False,
|
||||
help='Suppress verbose output, only show basic '
|
||||
'information in JSON format. Speeds listed in '
|
||||
'bit/s and not affected by --bytes')
|
||||
'bit/s and not affected by --bytes or --units')
|
||||
parser.add_argument('--list', action='store_true',
|
||||
help='Display a list of speedtest.net servers '
|
||||
'sorted by distance')
|
||||
|
@ -1850,6 +1865,10 @@ def shell():
|
|||
raise SpeedtestCLIError('Cannot supply both --no-download and '
|
||||
'--no-upload')
|
||||
|
||||
if not args.bytes and not args.units:
|
||||
raise SpeedtestCLIError('Cannot supply both --bytes and '
|
||||
'--units')
|
||||
|
||||
if len(args.csv_delimiter) != 1:
|
||||
raise SpeedtestCLIError('--csv-delimiter must be a single character')
|
||||
|
||||
|
@ -1864,6 +1883,13 @@ def shell():
|
|||
if debug:
|
||||
DEBUG = True
|
||||
|
||||
if args.bytes:
|
||||
units = 'Mbyte'
|
||||
elif args.units:
|
||||
units = args.units
|
||||
else:
|
||||
units = 'Mbit'
|
||||
|
||||
if args.simple or args.csv or args.json:
|
||||
quiet = True
|
||||
else:
|
||||
|
@ -1951,9 +1977,9 @@ def shell():
|
|||
callback=callback,
|
||||
threads=(None, 1)[args.single]
|
||||
)
|
||||
printer('Download: %0.2f M%s/s' %
|
||||
((results.download / 1000.0 / 1000.0) / args.units[1],
|
||||
args.units[0]),
|
||||
printer('Download: %0.2f %s/s' %
|
||||
(results.download / SIZEMAP[units],
|
||||
units),
|
||||
quiet)
|
||||
else:
|
||||
printer('Skipping download test', quiet)
|
||||
|
@ -1966,9 +1992,9 @@ def shell():
|
|||
pre_allocate=args.pre_allocate,
|
||||
threads=(None, 1)[args.single]
|
||||
)
|
||||
printer('Upload: %0.2f M%s/s' %
|
||||
((results.upload / 1000.0 / 1000.0) / args.units[1],
|
||||
args.units[0]),
|
||||
printer('Upload: %0.2f %s/s' %
|
||||
(results.upload / SIZEMAP[units],
|
||||
units),
|
||||
quiet)
|
||||
else:
|
||||
printer('Skipping upload test', quiet)
|
||||
|
|
Loading…
Reference in New Issue