class_docstr: Automatically produce features for a target dataframe in an Entityset.
  
  Args:
      target_dataframe_name (str): Name of dataframe for which to build features.
  
      entityset (EntitySet): Entityset for which to build features.
  
      agg_primitives (list[str or :class:`.primitives.`], optional):
          list of Aggregation Feature types to apply.
  
          Default: ["sum", "std", "max", "skew", "min", "mean", "count", "percent_true", "num_unique", "mode"]
  
      trans_primitives (list[str or :class:`.primitives.TransformPrimitive`], optional):
          list of Transform primitives to use.
  
          Default: ["day", "year", "month", "weekday", "haversine", "num_words", "num_characters"]
  
      where_primitives (list[str or :class:`.primitives.PrimitiveBase`], optional):
          only add where clauses to these types of Primitives
  
          Default:
  
              ["count"]
  
      groupby_trans_primitives (list[str or :class:`.primitives.TransformPrimitive`], optional):
          list of Transform primitives to make GroupByTransformFeatures with
  
      max_depth (int, optional) : maximum allowed depth of features.
          Default: 2. If -1, no limit.
  
      max_features (int, optional) : Cap the number of generated features to
          this number. If -1, no limit.
  
      allowed_paths (list[list[str]], optional): Allowed dataframe paths to make
          features for. If None, use all paths.
  
      ignore_dataframes (list[str], optional): List of dataframes to
          blacklist when creating features. If None, use all dataframes.
  
      ignore_columns (dict[str -> list[str]], optional): List of specific
          columns within each dataframe to blacklist when creating features.
          If None, use all columns.
  
      seed_features (list[:class:`.FeatureBase`], optional): List of manually
          defined features to use.
  
      drop_contains (list[str], optional): Drop features
          that contains these strings in name.
  
      drop_exact (list[str], optional): Drop features that
          exactly match these strings in name.
  
      where_stacking_limit (int, optional): Cap the depth of the where features.
          Default: 1
  
      primitive_options (dict[str or tuple[str] or PrimitiveBase -> dict or list[dict]], optional):
          Specify options for a single primitive or a group of primitives.
          Lists of option dicts are used to specify options per input for primitives
          with multiple inputs. Each option ``dict`` can have the following keys:
  
  
          ``"include_dataframes"``
              List of dataframes to be included when creating features for
              the primitive(s). All other dataframes will be ignored
              (list[str]).
          ``"ignore_dataframes"``
              List of dataframes to be blacklisted when creating features
              for the primitive(s) (list[str]).
          ``"include_columns"``
              List of specific columns within each dataframe to include when
              creating features for the primitive(s). All other columns
              in a given dataframe will be ignored (dict[str -> list[str]]).
          ``"ignore_columns"``
              List of specific columns within each dataframe to blacklist
              when creating features for the primitive(s) (dict[str ->
              list[str]]).
          ``"include_groupby_dataframes"``
              List of dataframes to be included when finding groupbys. All
              other dataframes will be ignored (list[str]).
          ``"ignore_groupby_dataframes"``
              List of dataframes to blacklist when finding groupbys
              (list[str]).
          ``"include_groupby_columns"``
              List of specific columns within each dataframe to include as
              groupbys, if applicable. All other columns in each
              dataframe will be ignored (dict[str -> list[str]]).
          ``"ignore_groupby_columns"``
              List of specific columns within each dataframe to blacklist
              as groupbys (dict[str -> list[str]]).
class_docstr_tok: ["Automatically","produce","features","for","a","target","dataframe","in","an","Entityset",".","Args",":","target_dataframe_name","(","str",")",":","Name","of","dataframe","for","which","to","build","features",".","entityset","(","EntitySet",")",":","Entityset","for","which","to","build","features",".","agg_primitives","(","list","[","str","or",":","class",":","`",".primitives.","`","]",",","optional",")",":","list","of","Aggregation","Feature","types","to","apply",".","Default",":","[","``","sum","''",",","``","std","''",",","``","max","''",",","``","skew","''",",","``","min","''",",","``","mean","''",",","``","count","''",",","``","percent_true","''",",","``","num_unique","''",",","``","mode","''","]","trans_primitives","(","list","[","str","or",":","class",":","`",".primitives.TransformPrimitive","`","]",",","optional",")",":","list","of","Transform","primitives","to","use",".","Default",":","[","``","day","''",",","``","year","''",",","``","month","''",",","``","weekday","''",",","``","haversine","''",",","``","num_words","''",",","``","num_characters","''","]","where_primitives","(","list","[","str","or",":","class",":","`",".primitives.PrimitiveBase","`","]",",","optional",")",":","only","add","where","clauses","to","these","types","of","Primitives","Default",":","[","``","count","''","]","groupby_trans_primitives","(","list","[","str","or",":","class",":","`",".primitives.TransformPrimitive","`","]",",","optional",")",":","list","of","Transform","primitives","to","make","GroupByTransformFeatures","with","max_depth","(","int",",","optional",")",":","maximum","allowed","depth","of","features",".","Default",":","2",".","If","-1",",","no","limit",".","max_features","(","int",",","optional",")",":","Cap","the","number","of","generated","features","to","this","number",".","If","-1",",","no","limit",".","allowed_paths","(","list","[","list","[","str","]","]",",","optional",")",":","Allowed","dataframe","paths","to","make","features","for",".","If","None",",","use","all","paths",".","ignore_dataframes","(","list","[","str","]",",","optional",")",":","List","of","dataframes","to","blacklist","when","creating","features",".","If","None",",","use","all","dataframes",".","ignore_columns","(","dict","[","str","-",">","list","[","str","]","]",",","optional",")",":","List","of","specific","columns","within","each","dataframe","to","blacklist","when","creating","features",".","If","None",",","use","all","columns",".","seed_features","(","list","[",":","class",":","`",".FeatureBase","`","]",",","optional",")",":","List","of","manually","defined","features","to","use",".","drop_contains","(","list","[","str","]",",","optional",")",":","Drop","features","that","contains","these","strings","in","name",".","drop_exact","(","list","[","str","]",",","optional",")",":","Drop","features","that","exactly","match","these","strings","in","name",".","where_stacking_limit","(","int",",","optional",")",":","Cap","the","depth","of","the","where","features",".","Default",":","1","primitive_options","(","dict","[","str","or","tuple","[","str","]","or","PrimitiveBase","-",">","dict","or","list","[","dict","]","]",",","optional",")",":","Specify","options","for","a","single","primitive","or","a","group","of","primitives",".","Lists","of","option","dicts","are","used","to","specify","options","per","input","for","primitives","with","multiple","inputs",".","Each","option","``","dict","``","can","have","the","following","keys",":","``","``","include_dataframes","''","``","List","of","dataframes","to","be","included","when","creating","features","for","the","primitive","(","s",")",".","All","other","dataframes","will","be","ignored","(","list","[","str","]",")",".","``","``","ignore_dataframes","''","``","List","of","dataframes","to","be","blacklisted","when","creating","features","for","the","primitive","(","s",")","(","list","[","str","]",")",".","``","``","include_columns","''","``","List","of","specific","columns","within","each","dataframe","to","include","when","creating","features","for","the","primitive","(","s",")",".","All","other","columns","in","a","given","dataframe","will","be","ignored","(","dict","[","str","-",">","list","[","str","]","]",")",".","``","``","ignore_columns","''","``","List","of","specific","columns","within","each","dataframe","to","blacklist","when","creating","features","for","the","primitive","(","s",")","(","dict","[","str","-",">","list","[","str","]","]",")",".","``","``","include_groupby_dataframes","''","``","List","of","dataframes","to","be","included","when","finding","groupbys",".","All","other","dataframes","will","be","ignored","(","list","[","str","]",")",".","``","``","ignore_groupby_dataframes","''","``","List","of","dataframes","to","blacklist","when","finding","groupbys","(","list","[","str","]",")",".","``","``","include_groupby_columns","''","``","List","of","specific","columns","within","each","dataframe","to","include","as","groupbys",",","if","applicable",".","All","other","columns","in","each","dataframe","will","be","ignored","(","dict","[","str","-",">","list","[","str","]","]",")",".","``","``","ignore_groupby_columns","''","``","List","of","specific","columns","within","each","dataframe","to","blacklist","as","groupbys","(","dict","[","str","-",">","list","[","str","]","]",")","."]
code: def _filter_features(self, features):
      assert isinstance(
          self.drop_exact, list
      ), "drop_exact must be a list"
      assert isinstance(
          self.drop_contains, list
      ), "drop_contains must be a list"
      f_keep = []
      for f in features:
          keep = True
          for contains in self.drop_contains:
              if contains in f.get_name():
                  keep = False
                  break
  
          if f.get_name() in self.drop_exact:
              keep = False
  
          if keep:
              f_keep.append(f)
  
      return f_keep
  
imports: import functools
  import logging
  import operator
  import warnings
  from collections import defaultdict
  from typing import Any, DefaultDict, Dict, List, Tuple, Type
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import Boolean, BooleanNullable
  from featuretools import primitives
  from featuretools.entityset.entityset import LTI_COLUMN_NAME
  from featuretools.entityset.relationship import RelationshipPath
  from featuretools.feature_base import AggregationFeature, DirectFeature, FeatureBase, GroupByTransformFeature, IdentityFeature, TransformFeature
  from featuretools.feature_base.cache import CacheType, feature_cache
  from featuretools.feature_base.utils import is_valid_input
  from featuretools.primitives.base import AggregationPrimitive, PrimitiveBase, TransformPrimitive
  from featuretools.primitives.options_utils import filter_groupby_matches_by_options, filter_matches_by_options, generate_all_primitive_options, ignore_dataframe_for_primitive
  from featuretools.utils.gen_utils import Library, camel_and_title_to_snake
label_desc: Use image node_id 3 for calling the DeepFeatureSynthesis obj's underlying member method code with example usage: obj._filter_features(features) and returns: f_keep