code: def get_dataset_overview(
      config: Settings, summary: BaseDescription
  ) -> Renderable:
      table_metrics = [
          {
              "name": "Number of variables",
              "value": fmt_number(summary.table["n_var"]),
          },
          {
              "name": "Number of observations",
              "value": fmt_number(summary.table["n"]),
          },
          {
              "name": "Missing cells",
              "value": fmt_number(summary.table["n_cells_missing"]),
          },
          {
              "name": "Missing cells (%)",
              "value": fmt_percent(summary.table["p_cells_missing"]),
          },
      ]
      if "n_duplicates" in summary.table:
          table_metrics.extend(
              [
                  {
                      "name": "Duplicate rows",
                      "value": fmt_number(
                          summary.table["n_duplicates"]
                      ),
                  },
                  {
                      "name": "Duplicate rows (%)",
                      "value": fmt_percent(
                          summary.table["p_duplicates"]
                      ),
                  },
              ]
          )
      if "memory_size" in summary.table:
          table_metrics.extend(
              [
                  {
                      "name": "Total size in memory",
                      "value": fmt_bytesize(
                          summary.table["memory_size"]
                      ),
                  },
                  {
                      "name": "Average record size in memory",
                      "value": fmt_bytesize(
                          summary.table["record_size"]
                      ),
                  },
              ]
          )
  
      dataset_info = Table(
          table_metrics,
          name="Dataset statistics",
          style=config.html.style,
      )
  
      dataset_types = Table(
          [
              {
                  "name": str(type_name),
                  "value": fmt_numeric(
                      count, precision=config.report.precision
                  ),
              }
              for type_name, count in summary.table["types"].items()
          ],
          name="Variable types",
          style=config.html.style,
      )
  
      return Container(
          [dataset_info, dataset_types],
          anchor_id="dataset_overview",
          name="Overview",
          sequence_type="grid",
      )
  
file_path: ydata-profiling/src/ydata_profiling/report/structure/overview.py
imports: from datetime import datetime
  from typing import Any, List
  from urllib.parse import quote
  from ydata_profiling.config import Settings
  from ydata_profiling.model import BaseDescription
  from ydata_profiling.model.alerts import AlertType
  from ydata_profiling.model.description import TimeIndexAnalysis
  from ydata_profiling.report.formatters import fmt, fmt_bytesize, fmt_number, fmt_numeric, fmt_percent, fmt_timespan, fmt_timespan_timedelta, list_args
  from ydata_profiling.report.presentation.core import Alerts, Container
  from ydata_profiling.report.presentation.core import Image
  from ydata_profiling.report.presentation.core import Table
  from ydata_profiling.report.presentation.core.renderable import Renderable
  from ydata_profiling.visualisation.plot import plot_overview_timeseries
label_desc: Use image node_id 1 for calling a global function with example usage: get_dataset_overview(config, summary) and returns: Container