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