Files @ e6f9a4843e49
Branch filter:

Location: Morevna/src/stats.py

Laman
configurable log path
class Stats:
	def __init__(self):
		self.received=0
		self.sent=0
		self.exchangedNodes=0
		self.transferredBlocks=0

stats=Stats()


def logReceived(data):
	stats.received+=len(data)


def logSent(data):
	stats.sent+=len(data)


def logExchangedNode(k=1):
	stats.exchangedNodes+=k


def logTransferredBlock(k=1):
	stats.transferredBlocks+=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=formatBytes(stats.received), r=stats.received, sf=formatBytes(stats.sent), s=stats.sent, nodes=stats.exchangedNodes, blocks=stats.transferredBlocks)


def formatBytes(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])