def __missing__(self, key):
        if self.default_factory is None:
            raise KeyError(key)
        else:
            ret = self[key] = self.default_factory(name=key)
            return ret
def _on_drag_data_received(self, dragged_item_index_str, destination_item):
    dragged_item = self._items[int(dragged_item_index_str)]
    self.reorder_item(dragged_item, self._get_item_position(destination_item))