def METHOD_NAME(self, details):
    report_vars = {'metrics': 0, 'measures': 0, 'metric_details': {}}
    if details:
        def build_metric_report(metric, sack):
            report_vars['metric_details'][metric] = len(
                self._list_measures_container_for_metric_str(sack, metric))
    else:
        def build_metric_report(metric, sack):
            report_vars['metrics'] += 1
            report_vars['measures'] += len(
                self._list_measures_container_for_metric_str(sack, metric))
    for sack in self.iter_sacks():
        for metric in set(self._list_target(self._sack_path(sack))):
            build_metric_report(metric, sack)
    return (report_vars['metrics'] or
            len(report_vars['metric_details'].keys()),
            report_vars['measures'] or
            sum(report_vars['metric_details'].values()),
            report_vars['metric_details'] if details else None)