class_docstr: Abstract base class used for modules in a pipeline.
class_docstr_tok: ["Abstract","base","class","used","for","modules","in","a","pipeline","."]
docstr: Get all features that meet feature_begins_with and ignore_features requirements
  
  :param list all_features: input features list
  :return: pruned features list
  :rtype: list
docstr_tok: ["Get","all","features","that","meet","feature_begins_with","and","ignore_features","requirements",":","param","list","all_features",":","input","features","list",":","return",":","pruned","features","list",":","rtype",":","list"]
code: def get_features(self, all_features: list) -> list:
      """Get all features that meet feature_begins_with and ignore_features requirements
  
      :param list all_features: input features list
      :return: pruned features list
      :rtype: list
      """
      all_features = sorted(all_features)
      features = self.features or all_features
  
      if self.feature_begins_with:
          features = [
              k
              for k in features
              if k.startswith(self.feature_begins_with)
          ]
      if self.ignore_features:
          features = [
              k for k in features if k not in self.ignore_features
          ]
  
      features_not_in_input = [
          feature for feature in features if feature not in all_features
      ]
      for feature in features_not_in_input:
          self.logger.warning(
              f'Feature "{feature}" not in input data; skipping.'
          )
  
      features = [
          feature for feature in features if feature in all_features
      ]
      return features
  
imports: from __future__ import annotations
  import logging
  from abc import ABCMeta
  from functools import wraps
label_desc: Use image node_id 8 for calling the Module obj's underlying member method code with example usage: obj.get_features(all_features) and returns: features