code: def test_file_warning_processing_logging(
      dummy_data, logging_file_path
  ):
      def interpolate(series: pd.Series) -> pd.Series:
          return series.interpolate()
  
      @dataframe_func  # Note: this can (and should) be a single_series_func as dropna works on pd.Series
      def drop_nans(df: pd.DataFrame) -> pd.DataFrame:
          return df.dropna()
  
      assert not os.path.exists(logging_file_path)
  
      inp = dummy_data.copy()
      inp.loc[inp["TMP"] > 31.5, "TMP"] = pd.NA
      assert any(
          inp["TMP"].isna()
      )  # Check that there are some NANs present
      series_pipeline = SeriesPipeline(
          [
              SeriesProcessor(
                  series_names=["TMP", "ACC_x"], function=interpolate
              ),
              SeriesProcessor(series_names="TMP", function=drop_nans),
          ]
      )
  
      with warnings.catch_warnings(record=True) as w:
          with open(logging_file_path, "w"):
              pass
          assert os.path.exists(logging_file_path)
          _ = series_pipeline.process(
              inp, logging_file_path=logging_file_path
          )
          assert os.path.exists(logging_file_path)
          assert len(w) == 1
          assert all(
              [issubclass(warn.category, RuntimeWarning) for warn in w]
          )
          assert "already exists" in str(w[0])
  
imports: import os
  import warnings
  import numpy
  import pandas
  from tsflex.processing import SeriesPipeline, SeriesProcessor, dataframe_func, get_processor_logs
  from .utils import dummy_data, logging_file_path
label_desc: Use image node_id 2 for calling a global function with example usage: test_file_warning_processing_logging(dummy_data, logging_file_path) and returns: series, df