def read_backup(self, p_todolist=None, p_timestamp=None):
        """
        Retrieves a backup for p_timestamp or p_todolist (if p_timestamp is not
        specified) from backup file and sets timestamp, todolist, archive and
        label attributes to appropriate data from it.
        """
        if not p_timestamp:
            change_hash = hash_todolist(p_todolist)
            index = self._get_index()
            self.timestamp = index[[change[1] for change in index].index(change_hash)][0]
        else:
            self.timestamp = p_timestamp

        d = self.backup_dict[self.timestamp]

        self.todolist = TodoList(d[0])
        self.archive = TodoList(d[1])
        self.label = d[2]
Retrieves a backup for p_timestamp or p_todolist (if p_timestamp is not
        specified) from backup file and sets timestamp, todolist, archive and
        label attributes to appropriate data from it.