code: def prune_existing_features(project, force=False):
      
      if not force and not project.on_master_after_merge():
          raise SkippedValidationTest('Not on master')
  
      out = project.build()
      X_df, y, features = out['X_df'], out['y'], out['features']
      proposed_feature = get_proposed_feature(project)
      accepted_features = get_accepted_features(features, proposed_feature)
      evaluator = GFSSFPruningEvaluator(
          X_df, y, accepted_features, proposed_feature)
      redundant_features = evaluator.prune()
  
      # propose removal
      for feature in redundant_features:
          logger.debug(PRUNER_MESSAGE + feature.source)
  
      return redundant_features
docs: Prune existing features