def _show(self, status=None, idx=None):
        """show todos after format
        :param status: what status's todos wants to show.
        default is None, means show all
        """
        _show('', 50)
        if not self.todos:
            self._show_no_todos()
        elif idx is not None:
            for todo in self.todos:
                if todo['idx'] == idx:
                    self._show_todos(todo)
        elif status is not None:
            if status not in STATUS_CODE:
                raise InvalidTodoStatus
            _todos = []
            for todo in self.todos:
                if todo['status'] == status:
                    _todos.append(todo)
            if not _todos:
                self._show_no_todos(text_fix='No {} todos...'.format(
                                    STATUS_CODE.get(status, None)))
            else:
                for todo in _todos:
                    self._show_todos(todo)
        else:
            for todo in self.todos:
                self._show_todos(todo)
        _show('', 50)