docs: def get_sec_overview(self):
          """
          Generate the "overview" section of the report.
          """
  
          logger.debug("Calculating Overview metrics.")
  
          data_path = os.path.join(self.data_dir, "overview")
          if not os.path.exists(data_path):
              os.makedirs(data_path)
  
          overview_config = {
              "activity_metrics": [],
              "author_metrics": [],
              "bmi_metrics": [],
              "time_to_close_metrics": [],
              "projects_metrics": []
          }
  
          for ds in self.data_sources:
              metric_file = self.ds2class[ds]
              metric_index = self.get_metric_index(ds)
              overview = metric_file.overview(metric_index, self.start_date, self.end_date)
              for section in overview_config:
                  overview_config[section] += overview[section]
  
          overview_config['activity_file_csv'] = "data_source_evolution.csv"
          overview_config['efficiency_file_csv'] = "efficiency.csv"
  
          # ACTIVITY METRICS
          metrics = overview_config['activity_metrics']
          file_name = overview_config['activity_file_csv']
          file_name = os.path.join(data_path, file_name)
  
          csv = "metricsnames, netvalues, relativevalues, datasource\n"
  
          for metric in metrics:
              (last, percentage) = get_trend(metric.timeseries())
              csv += "{}, {}, {}, {}\n".format(metric.name, last,
                                               percentage, metric.DS_NAME)
          csv = csv.replace("_", "\_")
          create_csv(file_name, csv)
  
          # AUTHOR METRICS
          """
          Git Authors:
          -----------
          Description: average number of developers per month by quarters
          (so we have the average number of developers per month during
          those three months). If the approach is to work at the level of month,
          then just the number of developers per month.
          """
  
          author = overview_config['author_metrics']
          if author:
              authors_by_period = author[0]
              title_label = file_label = authors_by_period.name + ' per ' + self.interval
              file_path = os.path.join(data_path, file_label)
              csv_data = authors_by_period.timeseries(dataframe=True)
              # generate the CSV and the image file displaying the data
              self.create_csv_fig_from_df([csv_data], file_path, [authors_by_period.name],
                                          fig_type="bar", title=title_label, xlabel="time_period",
                                          ylabel=authors_by_period.id)
          # BMI METRICS
          bmi = []
          bmi_metrics = overview_config['bmi_metrics']
          csv = ""
          for metric in bmi_metrics:
              bmi.append(metric.aggregations())
              csv += metric.id + ", "
  
          # Time to close METRICS
          ttc = []
          ttc_metrics = overview_config['time_to_close_metrics']
          for metric in ttc_metrics:
              ttc.append(metric.aggregations())
              csv += metric.id + ", "
  
          # generate efficiency file
          csv = csv[:-2] + "\n"
          csv = csv.replace("_", "")
          bmi.extend(ttc)
          for val in bmi:
              csv += "%s, " % str_val(val)
          if csv[-2:] == ", ":
              csv = csv[:-2]
  
          file_name = os.path.join(data_path, 'efficiency.csv')
          create_csv(file_name, csv)
          logger.debug("Overview metrics generation complete!")