class_docstr: Generates a report based on the metrics and stages in the pipeline.
  
  Each ReportGenerator corresponds to one aggregation which contains an
  ordered set of stages. It collects information about the DP aggregation
  and generates a report.
docstr: Add a stage description to the report.
  
  Args:
      stage_description: description of the stage. Note that it might be
      a Callable that returns str. Support Callable is needed to support
      cases when the description contains information which is not yet
      available during the pipeline construction, e.g. the budget.
docstr_tok: ["Add","a","stage","description","to","the","report",".","Args",":","stage_description",":","description","of","the","stage",".","Note","that","it","might","be","a","Callable","that","returns","str",".","Support","Callable","is","needed","to","support","cases","when","the","description","contains","information","which","is","not","yet","available","during","the","pipeline","construction",",","e.g",".","the","budget","."]
code: def add_stage(self, stage_description: Union[Callable, str]) -> None:
      """Add a stage description to the report.
  
      Args:
          stage_description: description of the stage. Note that it might be
          a Callable that returns str. Support Callable is needed to support
          cases when the description contains information which is not yet
          available during the pipeline construction, e.g. the budget.
      """
      self._stages.append(stage_description)
  
file_path: pipelinedp/pipeline_dp/report_generator.py
imports: from pipeline_dp import aggregate_params
  from typing import Optional, Union, Callable
label_desc: Use image node_id 2 for calling the ReportGenerator obj's underlying member method code with example usage: obj.add_stage(stage_description) without return types