<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def format_status(self, width=None, label_width=None, progress_width=None, summary_width=None):
 """Generate the formatted status bar string."""

        if width is None:  # pragma: no cover
            width = shutil.get_terminal_size()[0]

        if label_width is None:
            label_width = len(self.label)
        if summary_width is None:
            summary_width = self.summary_width()
        if progress_width is None:
            progress_width = width - label_width - summary_width - 2

        if len(self.label) > label_width:
            # FIXME: This actually *will* break if we ever have fewer than
            # three characters assigned to format the label, but that would
            # be an extreme situation so I won't fix it just yet.
            label = self.label[:label_width - 3] + "..."
        else:
            label_format = "{{label:{fill_char}<{width}}}".format(
                width=label_width,
                fill_char=self.fill_char)
            label = label_format.format(label=self.label)

        summary_format = "{{:>{width}}}".format(width=summary_width)
        summary = summary_format.format(self._progress.format_summary())

        progress = self._progress.format_progress(width=progress_width)

        return "{label} {progress} {summary}".format(
            label=label,
            progress=progress,
            summary=summary
        )