Description: Update upstream source to Python 3. Based on fixes at https://github.com/kenduest/speedometer/ Author: Giovani Augusto Ferreira Last-Update: 2019-12-08 Index: speedometer/speedometer.py =================================================================== --- speedometer.orig/speedometer.py +++ speedometer/speedometer.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # speedometer.py # Copyright (C) 2001-2011 Ian Ward @@ -21,6 +21,8 @@ import os import string import math import re +import psutil +import six __usage__ = """Usage: speedometer [options] tap [[-c] tap]... Monitor network traffic or speed/progress of a file transfer. At least one @@ -76,6 +78,10 @@ units_per_second = 'bytes' chart_minimum = 2**5 chart_maximum = 2**32 +if six.PY3: + def long(*args,**kwargs): + return int(*args,**kwargs) + graph_scale = None def update_scale(): """ @@ -400,7 +406,8 @@ class SpeedGraph: self.log = [] self.bar = [] - def get_data(self, (maxcol,maxrow)): + def get_data(self, max_col_row): + maxcol, maxrow = max_col_row bar = self.bar[-maxcol:] if len(bar) < maxcol: bar = [[0]]*(maxcol-len(bar)) + bar @@ -409,8 +416,8 @@ class SpeedGraph: def selectable(self): return False - def render(self, (maxcol, maxrow), focus=False): - + def render(self, max_col_row, focus=False): + maxcol, maxrow = max_col_row left = max(0, len(self.log)-maxcol) pad = maxcol-(len(self.log)-left) @@ -445,8 +452,8 @@ class SpeedGraph: for i in range(left+max(0, ldist-pad),len(l)-rdist+1): li = l[i] if li == 0: continue - if i and l[i-1]>=li: continue - if l[i+1]>li: continue + if i and l[i-1] != None and l[i-1]>=li: continue + if li is None or l[i+1]>li: continue highs.append((li, -i)) highs.sort() @@ -471,7 +478,7 @@ class SpeedGraph: def speed_scale(s): - if s <= 0: return 0 + if s is None or s <= 0: return 0 if logarithmic_scale: s = math.log(s, 2) s = min(graph_range(), max(0, s-graph_min())) @@ -498,7 +505,7 @@ def readable_speed(speed): if speed == None or speed < 0: speed = 0 units = "B/s ", "KiB/s", "MiB/s", "GiB/s", "TiB/s" - step = 1L + step = long(1) for u in units: @@ -511,7 +518,7 @@ def readable_speed(speed): if speed/step < 1024: return "%4d " %(speed/step) + u - step = step * 1024L + step = step * long(1024) return "%4d " % (speed/(step/1024)) + units[-1] @@ -524,7 +531,7 @@ def readable_speed_bits(speed): speed = speed * 8 units = "b/s ", "Kib/s", "Mib/s", "Gib/s", "Tib/s" - step = 1L + step = long(1) for u in units: @@ -537,7 +544,7 @@ def readable_speed_bits(speed): if speed/step < 1024: return "%4d " %(speed/step) + u - step = step * 1024L + step = step * long(1024) return "%4d " % (speed/(step/1024)) + units[-1] @@ -607,18 +614,12 @@ def network_feed(device,rxtx): r = re.compile(r"^\s*" + re.escape(device) + r":(.*)$", re.MULTILINE) def networkfn(devre=r,rxtx=rxtx): - f = open('/proc/net/dev') - dev_lines = f.read() - f.close() - match = devre.search(dev_lines) - if not match: - return None - - parts = match.group(1).split() if rxtx == 'RX': - return long(parts[0]) + val=psutil.net_io_counters(pernic=True)[device].bytes_recv else: - return long(parts[8]) + val=psutil.net_io_counters(pernic=True)[device].bytes_sent + + return long(val) return networkfn @@ -728,7 +729,7 @@ def time_as_units(seconds): # (multiplicative factor, suffix) units = (1,"s"), (60,"m"), (60,"h"), (24,"d"), (7,"w"), (52,"y") - scale = 1L + scale = long(1) topunit = -1 # find the top unit to use for mul, suf in units: @@ -757,7 +758,7 @@ def readable_time(seconds, columns=None) for value, suf in time_as_units(seconds): new_out = out if out: new_out = new_out + ' ' - new_out = new_out + `value` + suf + new_out = new_out + value + suf if columns and len(new_out) > columns: break out = new_out @@ -1091,6 +1092,6 @@ def wait_all(cols): if __name__ == "__main__": try: console() - except KeyboardInterrupt, err: + except KeyboardInterrupt as err: pass Index: speedometer/setup.py =================================================================== --- speedometer.orig/setup.py +++ speedometer/setup.py @@ -35,7 +35,7 @@ setup_d = { 'scripts': ['speedometer.py'], 'entry_points': { 'console_scripts': ['speedometer = speedometer:console'],}, - 'install_requires': ['urwid >= 0.9.9.1'], + 'install_requires': ['urwid >= 0.9.9.1', 'psutil', 'six'], 'license':"LGPL", 'keywords':"network bandwidth monitor system speed download file progress console", 'platforms':"Linux",