class_docstr: Base class for creating bundled profilers.
  
  Contains functionality to manage configurations, orchestrate the execution of the profiling
  functions and collate the results. It's up for the subclasses to decide on which profiling
  functions to include, done so by assigning a list with said profiling functions to the
  class variable `_profilers`.
class_docstr_tok: ["Base","class","for","creating","bundled","profilers",".","Contains","functionality","to","manage","configurations",",","orchestrate","the","execution","of","the","profiling","functions","and","collate","the","results",".","It","'s","up","for","the","subclasses","to","decide","on","which","profiling","functions","to","include",",","done","so","by","assigning","a","list","with","said","profiling","functions","to","the","class","variable","`","_profilers","`","."]
docstr: Args:
      config (Optional[dict]): Profiler functions' configurations. Whatever options are
          provided here will override the defaults. Expects a 2-level dictionary with the
          first level indexed by the name of the profiling functions and the second level
          the function's parameters. Assumed configs (i.e. defaults + overrides) are stored
          in the class variable `config`.
      scheduler (Optional[Scheduler]): For executing the profiling functions. Instantiates
          the default one if not provided.
docstr_tok: ["Args",":","config","(","Optional","[","dict","]",")",":","Profiler","functions","'","configurations",".","Whatever","options","are","provided","here","will","override","the","defaults",".","Expects","a","2-level","dictionary","with","the","first","level","indexed","by","the","name","of","the","profiling","functions","and","the","second","level","the","function","'s","parameters",".","Assumed","configs","(","i.e",".","defaults","+","overrides",")","are","stored","in","the","class","variable","`","config","`",".","scheduler","(","Optional","[","Scheduler","]",")",":","For","executing","the","profiling","functions",".","Instantiates","the","default","one","if","not","provided","."]
code: def __init__(
      self,
      config: Optional[Dict[str, Dict[str, Any]]] = None,
      scheduler: Optional[Scheduler] = None,
  ) -> None:
      """
      Args:
          config (Optional[dict]): Profiler functions' configurations. Whatever options are
              provided here will override the defaults. Expects a 2-level dictionary with the
              first level indexed by the name of the profiling functions and the second level
              the function's parameters. Assumed configs (i.e. defaults + overrides) are stored
              in the class variable `config`.
          scheduler (Optional[Scheduler]): For executing the profiling functions. Instantiates
              the default one if not provided.
      """
      self.config = self.get_config_defaults()
      if config:
          for p, cfg in config.items():
              self.config[p] = asdict(cfg) if is_dataclass(cfg) else cfg
      self.scheduler = scheduler or Scheduler()
  
imports: from typing import Any, Optional, Union, Dict, List, Callable, Tuple, KeysView, ValuesView, ItemsView
  from dataclasses import dataclass, make_dataclass, field, asdict, is_dataclass
  from functools import update_wrapper
  from inspect import signature, Signature
  from datetime import datetime
  import warnings
  from typing_inspect import is_union_type, get_args
  import pandas
  from tslumen.scheduling import Scheduler
  from tslumen.misc import repr_html
label_desc: Use image node_id 3 to create a new BundledProfiler object  with example: obj = BundledProfiler(config, scheduler)