slackbuilds/network/speedometer/update-to-python3.patch

175 lines
5.1 KiB
Diff

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",