code: def _parse_logging_execution_to_df(
      logging_file_path: str,
  ) -> pd.DataFrame:
      """Parse the logged messages into a DataFrame that contains execution info.
  
      Parameters
      ----------
      logging_file_path: str
          The file path where the logged messages are stored. This is the file path that
          is passed to the ``SeriesPipeline`` its ``process`` method.
  
      Returns
      -------
      pd.DataFrame
          A DataFrame with the processor its method, series names, output names, and
          (%) calculation duration.
  
      Note
      ----
      This function only works when the ``logging_file_path`` used in a ``SeriesPipeline``
      its ``process`` method is passed.
  
      """
      df = logging_file_to_df(logging_file_path)
      df[
          ["function", "series_names", "output_names", "duration"]
      ] = pd.DataFrame(
          list(df["message"].apply(_parse_message)),
          index=df.index,
      )
      df["duration %"] = (
          100 * (df["duration"] / df["duration"].sum())
      ).round(2)
      return df.drop(columns=["name", "log_level", "message"])
  
imports: import logging
  import re
  import pandas
  from ..utils.logging import logging_file_to_df, remove_inner_brackets
label_desc: Use image node_id 2 for calling a global function with example usage: _parse_logging_execution_to_df(logging_file_path) and returns: df