Files
@ 6a0ab4fe9f5e
Branch filter:
Location: Morevna/src/stats.py - annotation
6a0ab4fe9f5e
964 B
text/x-python
changed naming to snake case. sadly no love for camel case in this world
41ea9614ce8c 3b755a58a8b5 5c80ca07f00c 5c80ca07f00c 6a0ab4fe9f5e 6a0ab4fe9f5e 6a0ab4fe9f5e 3b755a58a8b5 5c80ca07f00c 41ea9614ce8c 41ea9614ce8c 6a0ab4fe9f5e 5c80ca07f00c 41ea9614ce8c 41ea9614ce8c 6a0ab4fe9f5e 5c80ca07f00c 41ea9614ce8c 41ea9614ce8c 6a0ab4fe9f5e 6a0ab4fe9f5e 41ea9614ce8c 41ea9614ce8c 6a0ab4fe9f5e 6a0ab4fe9f5e 3b755a58a8b5 3b755a58a8b5 3b755a58a8b5 3b755a58a8b5 5c80ca07f00c 41ea9614ce8c 41ea9614ce8c 41ea9614ce8c d76b98d421ae d76b98d421ae d76b98d421ae 5c80ca07f00c 6a0ab4fe9f5e 5c80ca07f00c 6a0ab4fe9f5e 5c80ca07f00c 6a0ab4fe9f5e 6a0ab4fe9f5e 5c80ca07f00c d76b98d421ae d76b98d421ae 6a0ab4fe9f5e 5c80ca07f00c 5c80ca07f00c d76b98d421ae 5c80ca07f00c 5c80ca07f00c 5c80ca07f00c 5c80ca07f00c 5c80ca07f00c 5c80ca07f00c | class Stats:
def __init__(self):
self.received = 0
self.sent = 0
self.exchanged_nodes = 0
self.transferred_blocks = 0
stats = Stats()
def log_received(data):
stats.received += len(data)
def log_sent(data):
stats.sent += len(data)
def log_exchanged_node(k=1):
stats.exchanged_nodes += k
def log_transferred_block(k=1):
stats.transferred_blocks += k
def reset():
global stats
stats = Stats()
def report():
return """received {rf} ({r:,} B)
sent {sf} ({s:,} B)
exchanged {nodes:,} hash tree nodes
transferred {blocks:,} blocks""".format(
rf=format_bytes(stats.received),
r=stats.received,
sf=format_bytes(stats.sent),
s=stats.sent,
nodes=stats.exchanged_nodes,
blocks=stats.transferred_blocks
)
def format_bytes(x):
exts = ["B", "kiB", "MiB", "GiB", "TiB", "PiB"]
i = 0
while x>1024:
x /= 1024
i += 1
if x>=100: x = round(x)
elif x>=10: x = round(x, 1)
else: x = round(x, 2)
return "{0} {1}".format(x, exts[i])
|