code: def generate_features_from_primitives(
      input_features: Iterable[LiteFeature],
      primitives: Union[List[Type[PrimitiveBase]], List[PrimitiveBase]],
  ) -> List[LiteFeature]:
      """
      ** EXPERIMENTAL **
      Calculates all Features for a given input of features and a list of primitives.
  
      Args:
          origin_features (List[LiteFeature]):
              List of origin features
          primitives (List[Type[PrimitiveBase]])
              List of primitive classes
  
      Returns:
          List[LiteFeature]
  
      Examples:
          .. code-block:: python
  
              from featuretools.feature_discovery.feature_discovery import lite_dfs
              from featuretools.primitives import Absolute, IsNull
              import pandas as pd
              import woodwork as ww
  
              df = pd.DataFrame({
                  "idx": [0,1,2,3],
                  "f1": ["A", "B", "C", "D"],
                  "f2": [1.2, 2.3, 3.4, 4.5]
              })
  
              df.ww.init()
              origin_features = schema_to_features(df.ww.schema)
              features = lite_dfs(origin_features, [Absolute, IsNull])
  
      """
  
      (input_features, primitives) = _check_inputs(
          input_features, primitives
      )
  
      features = [x.copy() for x in input_features]
  
      feature_collection = FeatureCollection(features=features)
      feature_collection.reindex()
  
      for primitive in primitives:
          features_ = _features_from_primitive(
              primitive=primitive,
              feature_collection=feature_collection,
          )
          features.extend(features_)
  
      return features
  
file_path: featuretools/featuretools/feature_discovery/feature_discovery.py
imports: import inspect
  from collections import defaultdict
  from itertools import combinations, permutations, product
  from typing import Iterable, List, Set, Tuple, Type, Union, cast
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import LogicalType
  from woodwork.table_schema import TableSchema
  from featuretools.feature_discovery.FeatureCollection import FeatureCollection
  from featuretools.feature_discovery.LiteFeature import LiteFeature
  from featuretools.feature_discovery.utils import column_schema_to_keys
  from featuretools.primitives.base.primitive_base import PrimitiveBase
  from featuretools.tests.testing_utils.generate_fake_dataframe import flatten_list
label_desc: Use image node_id 8 for calling a global function with example usage: generate_features_from_primitives(input_features, primitives) and returns: features