'Mutates block_structure based on the given usage_info.'

def transform(self, usage_info, block_structure):

    for block_key in block_structure.topological_traversal():
        parents = block_structure.get_parents(block_key)
        if parents:
            block_depth = (min((self.get_block_depth(block_structure, parent_key) for parent_key in parents)) + 1)
        else:
            block_depth = 0
        block_structure.set_transformer_block_field(block_key, self, self.BLOCK_DEPTH, block_depth)
    if (self.requested_depth is not None):
        block_structure.remove_block_traversal((lambda block_key: (self.get_block_depth(block_structure, block_key) > self.requested_depth)))
