def bucket_fill_for_trie(node: key.Key, eligible: trie.Trie): fill = [] finger = eligible for depth in range(node.bit_len()): dir = node.bit_at(depth) if finger.is_leaf(): break else: fill.append(finger.branch[1 - dir].size()) finger = finger.branch[dir] return fill