code: def test_features_only(dataframes, relationships):
      if len(dataframes["transactions"]) > 3:
          dataframes["transactions"][3]["fraud"] = "BooleanNullable"
      else:
          dataframes["transactions"] += ({"fraud": "BooleanNullable"},)
      features = dfs(
          dataframes=dataframes,
          relationships=relationships,
          target_dataframe_name="transactions",
          features_only=True,
      )
  
      # pandas creates 11 features
      # dask creates 10 features (no skew)
      # spark creates 9 features (no skew, no percent_true)
      if isinstance(dataframes["transactions"][0], pd.DataFrame):
          expected_features = 11
      elif is_instance(dataframes["transactions"][0], dd, "DataFrame"):
          expected_features = 10
      else:
          expected_features = 9
      assert len(features) == expected_features
  
imports: from unittest.mock import patch
  import composeml
  import numpy
  import pandas
  import pytest
  from packaging.version import parse
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import NaturalLanguage
  from featuretools.computational_backends.calculate_feature_matrix import FEATURE_CALCULATION_PERCENTAGE
  from featuretools.entityset import EntitySet, Timedelta
  from featuretools.exceptions import UnusedPrimitiveWarning
  from featuretools.primitives import GreaterThanScalar, Max, Mean, Min, Sum
  from featuretools.primitives.base import AggregationPrimitive, TransformPrimitive
  from featuretools.synthesis import dfs
  from featuretools.synthesis.deep_feature_synthesis import DeepFeatureSynthesis
  from featuretools.tests.testing_utils import to_pandas
  from featuretools.utils.gen_utils import Library, import_or_none, is_instance
label_desc: Use image node_id 12 for calling a global function with example usage: test_features_only(dataframes, relationships) without return types