class_docstr: Renders the profiling results as an interactive, fully self-contained HTML report that
  can be downloaded and shared without the need for a running server or Python kernel.
class_docstr_tok: ["Renders","the","profiling","results","as","an","interactive",",","fully","self-contained","HTML","report","that","can","be","downloaded","and","shared","without","the","need","for","a","running","server","or","Python","kernel","."]
docstr: Lazy loading property with the HTML representation of the report.
docstr_tok: ["Lazy","loading","property","with","the","HTML","representation","of","the","report","."]
code: def html(self) -> str:
      """Lazy loading property with the HTML representation of the report."""
      assert self.df.shape[1] <= 20 and (
          self._result is None or len(self._result.result.series) <= 20
      ), "HtmlReport not suitable for sets with more than 20 time series."
      start = datetime.now()
      meta = self.meta or {}
  
      # instantiate sections and build execution plan
      sequence: List[HtmlBlock] = []
      parallel: List[HtmlBlock] = []
      self.sections = []
      for klass in self.SECTIONS:
          if self.df.shape[1] <= 1 and klass in self._multiple_series:
              continue
          section = klass(self.result, meta, self.df, self.scheduler)
          self.sections.append(section)
          (sequence if klass in self._sequential else parallel).append(
              section
          )
  
      # execute sequential
      for section in sequence:
          _ = section.html
      # execute parallel
      _ = self.scheduler.run(
          lambda o: o.html,
          [(section,) for section in parallel],
          desc="Rendering remaining sections",
      )
      end = datetime.now()
      render_duration = end - start
      profile_duration = self.result.end - self.result.start
      self.duration = profile_duration + render_duration
      return str(super().html)
  
file_path: tslumen/tslumen/report/html/report.py
imports: import io
  from typing import Optional, List, Union
  from datetime import datetime, timedelta
  import pandas
  from tslumen.misc import lazyproperty
  from tslumen.scheduling import Scheduler
  from tslumen.profile.base import BundledProfiler, BundledResult
  from tslumen.report.base import Report
  from tslumen.report.html.base import HtmlBlock
  from tslumen.report.html.sections import SectionSummary, SectionTimeSeries, SectionTSFeatures, SectionRelations
label_desc: Use image node_id 3 for calling the HtmlReport obj's underlying member method code with example usage: obj.html() and returns: str