code: def X_train(self):
      X_train = self.train.drop(self.target_param, axis=1)
  
      if X_train.empty and self.fe_exogenous is None:
          return None
      else:
          # If X_train is not empty or empty but self.fe_exogenous is provided
          # Return X_train instead of None, since the index can be used to
          # generate features using self.fe_exogenous
          return X_train
  
file_path: pycaret/pycaret/internal/pycaret_experiment/ts_supervised_experiment.py
imports: import pandas
  from pycaret.internal.pycaret_experiment.supervised_experiment import _SupervisedExperiment
  from pycaret.utils.time_series.forecasting.pipeline import _pipeline_transform
label_desc: Use image node_id 6 for calling the _TSSupervisedExperiment obj's underlying member method code with example usage: obj.X_train() and returns: None, X_train