<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_summary(self, dataset_number=None, use_dfsummary_made=False):
 """Retrieve summary returned as a pandas DataFrame."""

        dataset_number = self._validate_dataset_number(dataset_number)
        if dataset_number is None:
            self._report_empty_dataset()
            return None

        test = self.get_dataset(dataset_number)

        # This is a bit convoluted; in the old days, we used an attribute
        # called dfsummary_made,
        # that was set to True when the summary was made successfully.
        # It is most likely never
        # used anymore. And will most probably be deleted.
        if use_dfsummary_made:
            dfsummary_made = test.dfsummary_made
        else:
            dfsummary_made = True

        if not dfsummary_made:
            warnings.warn("Summary is not made yet")
            return None
        else:
            self.logger.info("returning datasets[test_no].dfsummary")
            return test.dfsummary