20 lines
428 B
Python
20 lines
428 B
Python
from collections import namedtuple
|
|
|
|
|
|
E2EBreakdownItem = namedtuple("E2EBreakdownItem", ("type", "duration", "location"))
|
|
DepTree = namedtuple("DepTree", ("head", "deps"))
|
|
|
|
|
|
def depth(tree: DepTree):
|
|
return 1 + max(map(depth, tree.deps), default=0)
|
|
|
|
|
|
def size(tree: DepTree):
|
|
return 1 + sum(map(size, tree.deps))
|
|
|
|
|
|
def fanout(tree: DepTree):
|
|
if not tree.deps:
|
|
return 1
|
|
|
|
return sum(map(fanout, tree.deps))
|