diff options
Diffstat (limited to 'network/speedometer/update-to-python3.patch')
-rw-r--r-- | network/speedometer/update-to-python3.patch | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/network/speedometer/update-to-python3.patch b/network/speedometer/update-to-python3.patch new file mode 100644 index 0000000000000..dfce959f3b421 --- /dev/null +++ b/network/speedometer/update-to-python3.patch @@ -0,0 +1,174 @@ +Description: Update upstream source to Python 3. + Based on fixes at https://github.com/kenduest/speedometer/ +Author: Giovani Augusto Ferreira <giovani@debian.org> +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", |