code: def stability_report(
      hists,
      settings: Settings | None = None,
      reference=None,
      **kwargs,
  ):
      """Create a data stability monitoring html report for given dict of input histograms.
  
      :param dict hists: input histograms to be profiled and monitored over time.
      :param popmon.config.Settings settings: popmon configuration object
      :param reference: histograms used as reference. default is None
      :param kwargs: when settings=None, parameters such as `features` and `time_axis` can be passed
      :return: dict with results of reporting pipeline
      """
  
      if settings is None:
          settings = Settings(**kwargs)
  
      # perform basic input checks
      if not isinstance(hists, dict):
          raise TypeError(
              "hists should be a dict of histogrammar histograms."
          )
  
      if (
          isinstance(settings.time_axis, str)
          and len(settings.time_axis) == 0
      ):
          settings._set_time_axis_hists(hists)
  
      # configuration and datastore for report pipeline
      cfg = {
          "hists_key": "hists",
          "settings": settings,
      }
  
      datastore = {"hists": hists}
      if settings.reference_type in ["external", "self_split"]:
          cfg["ref_hists_key"] = "ref_hists"
          datastore["ref_hists"] = reference
  
      # execute reporting pipeline
      pipeline = get_report_pipeline_class(
          settings.reference_type, reference
      )(**cfg)
      result = pipeline.transform(datastore)
  
      stability_report_result = StabilityReport(datastore=result)
      return stability_report_result
  
file_path: popmon/popmon/pipeline/report.py
imports: from __future__ import annotations
  import logging
  from histogrammar.dfinterface.make_histograms import get_bin_specs, make_histograms
  from popmon.config import Settings
  from popmon.pipeline.dataset_splitter import split_dataset
  from popmon.pipeline.report_pipelines import ReportPipe, get_report_pipeline_class
  from popmon.resources import templates_env
label_desc: Use image node_id 1 for calling a global function with example usage: stability_report(hists, settings, reference) and returns: stability_report_result