docs: def save_df_as_csv(df, path, filename, comment=None, **kwargs):
      """ Save dataframe to a CSV file.
  
      Parameters
      ----------
      df : pandas.DataFrame
          dataframe to save
      path : str
          path to directory where to save CSV file
      filename : str
          filename of CSV file
      comment : str
          header comment(s); one or more lines starting with '#'
      **kwargs
          additional parameters to `pandas.DataFrame.to_csv`
  
      Returns
      -------
      str
          path to saved file, else empty str
      """
      if isinstance(df, pd.DataFrame) and len(df) > 0:
          try:
              if not create_dir(path):
                  return ""
  
              destination = os.path.join(path, filename)
  
              print("Saving " + os.path.relpath(destination))
  
              s = (
                  "# Generated by lineage v{}, https://github.com/apriha/lineage\n"
                  "# Generated at {} UTC\n"
              )
  
              s = s.format(
                  __version__, datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S")
              )
  
              if isinstance(comment, str):
                  s += comment
  
              with open(destination, "w") as f:
                  f.write(s)
  
              # https://stackoverflow.com/a/29233924/4727627
              with open(destination, "a") as f:
                  df.to_csv(f, na_rep="--", **kwargs)
  
              return destination
          except Exception as err:
              print(err)
              return ""
      else:
          print("no data to save...")
          return ""