code: def extract_features(timeseries_container, default_fc_parameters=None,
                       kind_to_fc_parameters=None,
                       column_id=None, column_sort=None, column_kind=None, column_value=None,
                       chunksize=defaults.CHUNKSIZE,
                       n_jobs=defaults.N_PROCESSES, show_warnings=defaults.SHOW_WARNINGS,
                       disable_progressbar=defaults.DISABLE_PROGRESSBAR,
                       impute_function=defaults.IMPUTE_FUNCTION,
                       profile=defaults.PROFILING,
                       profiling_filename=defaults.PROFILING_FILENAME,
                       profiling_sorting=defaults.PROFILING_SORTING,
                       distributor=None):
      df_melt, column_id, column_kind, column_value = \
          dataframe_functions._normalize_input_to_internal_representation(
              timeseries_container=timeseries_container,
              column_id=column_id, column_kind=column_kind,
              column_sort=column_sort,
              column_value=column_value)
      if default_fc_parameters is None and kind_to_fc_parameters is None:
          default_fc_parameters = ComprehensiveFCParameters()
      elif default_fc_parameters is None and kind_to_fc_parameters is not None:
          default_fc_parameters = {}
      if profile:
          profiler = profiling.start_profiling()
      with warnings.catch_warnings():
          if not show_warnings:
              warnings.simplefilter("ignore")
          else:
              warnings.simplefilter("default")
          result = _do_extraction(df=df_melt,
                                  column_id=column_id, column_value=column_value,
                                  column_kind=column_kind,
                                  n_jobs=n_jobs, chunk_size=chunksize,
                                  disable_progressbar=disable_progressbar,
                                  default_fc_parameters=default_fc_parameters,
                                  kind_to_fc_parameters=kind_to_fc_parameters,
                                  distributor=distributor)
          if impute_function is not None:
              impute_function(result)
      if profile:
          profiling.end_profiling(profiler, filename=profiling_filename,
                                  sorting=profiling_sorting)
      return result