<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_delta(self, branch, turn_from, tick_from, turn_to, tick_to):
 """Get a dictionary describing changes to all graphs. The keys are graph names. Their values are dictionaries of the graphs' attributes' new values, with ``None`` for deleted keys. Also in those graph dictionaries are special keys 'node_val' and 'edge_val' describing changes to node and edge attributes, and 'nodes' and 'edges' full of booleans indicating whether a node or edge exists. """

        from functools import partial
        if turn_from == turn_to:
            return self.get_turn_delta(branch, turn_from, tick_from, tick_to)
        delta = {}
        graph_objs = self._graph_objs
        if turn_to < turn_from:
            updater = partial(update_backward_window, turn_from, tick_from, turn_to, tick_to)
            gvbranches = self._graph_val_cache.presettings
            nbranches = self._nodes_cache.presettings
            nvbranches = self._node_val_cache.presettings
            ebranches = self._edges_cache.presettings
            evbranches = self._edge_val_cache.presettings
        else:
            updater = partial(update_window, turn_from, tick_from, turn_to, tick_to)
            gvbranches = self._graph_val_cache.settings
            nbranches = self._nodes_cache.settings
            nvbranches = self._node_val_cache.settings
            ebranches = self._edges_cache.settings
            evbranches = self._edge_val_cache.settings

        if branch in gvbranches:
            updater(partial(setgraphval, delta), gvbranches[branch])

        if branch in nbranches:
            updater(partial(setnode, delta), nbranches[branch])

        if branch in nvbranches:
            updater(partial(setnodeval, delta), nvbranches[branch])

        if branch in ebranches:
            updater(partial(setedge, delta, lambda g: graph_objs[g].is_multigraph()), ebranches[branch])

        if branch in evbranches:
            updater(partial(setedgeval, delta, lambda g: graph_objs[g].is_multigraph()), evbranches[branch])

        return delta