class_docstr: Represents an immutable set of features to be calculated for a single dataframe, and their
  dependencies.
class_docstr_tok: ["Represents","an","immutable","set","of","features","to","be","calculated","for","a","single","dataframe",",","and","their","dependencies","."]
docstr: The target features and their dependencies organized into a trie by relationship path.
  This is built once when it is first called (to avoid building it if it is not needed) and
  then used for all subsequent calls.
  
  The edges of the trie are RelationshipPaths and the values are tuples of
  (bool, set[str], set[str]). The bool represents whether the full dataframe is needed at
  that node, the first set contains the names of features which are needed on the full
  dataframe, and the second set contains the names of the rest of the features
  
  Returns:
      Trie[RelationshipPath, (bool, set[str], set[str])]
docstr_tok: ["The","target","features","and","their","dependencies","organized","into","a","trie","by","relationship","path",".","This","is","built","once","when","it","is","first","called","(","to","avoid","building","it","if","it","is","not","needed",")","and","then","used","for","all","subsequent","calls",".","The","edges","of","the","trie","are","RelationshipPaths","and","the","values","are","tuples","of","(","bool",",","set","[","str","]",",","set","[","str","]",")",".","The","bool","represents","whether","the","full","dataframe","is","needed","at","that","node",",","the","first","set","contains","the","names","of","features","which","are","needed","on","the","full","dataframe",",","and","the","second","set","contains","the","names","of","the","rest","of","the","features","Returns",":","Trie","[","RelationshipPath",",","(","bool",",","set","[","str","]",",","set","[","str","]",")","]"]
code: def feature_trie(self):
      """
      The target features and their dependencies organized into a trie by relationship path.
      This is built once when it is first called (to avoid building it if it is not needed) and
      then used for all subsequent calls.
  
      The edges of the trie are RelationshipPaths and the values are tuples of
      (bool, set[str], set[str]). The bool represents whether the full dataframe is needed at
      that node, the first set contains the names of features which are needed on the full
      dataframe, and the second set contains the names of the rest of the features
  
      Returns:
          Trie[RelationshipPath, (bool, set[str], set[str])]
      """
      if not self._feature_trie:
          self._feature_trie = self._build_feature_trie()
  
      return self._feature_trie
  
file_path: featuretools/featuretools/computational_backends/feature_set.py
imports: import itertools
  import logging
  from collections import defaultdict
  from featuretools.entityset.relationship import RelationshipPath
  from featuretools.feature_base import AggregationFeature, FeatureOutputSlice, GroupByTransformFeature, TransformFeature
  from featuretools.utils import Trie
label_desc: Use image node_id 2 for calling the FeatureSet obj's underlying member method code with example usage: obj.feature_trie() and returns: self