code: def test_deserializer_uses_common_primitive_instances_no_args(
      es, tmp_path
  ):
      features = dfs(
          entityset=es,
          target_dataframe_name="products",
          features_only=True,
          agg_primitives=["sum"],
          trans_primitives=["is_null"],
      )
  
      is_null_features = [
          f for f in features if f.primitive.name == "is_null"
      ]
      sum_features = [f for f in features if f.primitive.name == "sum"]
  
      # Make sure we have multiple features of each type
      assert len(is_null_features) > 1
      assert len(sum_features) > 1
  
      # DFS should use the same primitive instance for all features that share a primitive
      is_null_primitive = is_null_features[0].primitive
      sum_primitive = sum_features[0].primitive
      assert all(
          [f.primitive is is_null_primitive for f in is_null_features]
      )
      assert all([f.primitive is sum_primitive for f in sum_features])
  
      file = os.path.join(tmp_path, "features.json")
      save_features(features, file)
      deserialized_features = load_features(file)
      new_is_null_features = [
          f
          for f in deserialized_features
          if f.primitive.name == "is_null"
      ]
      new_sum_features = [
          f for f in deserialized_features if f.primitive.name == "sum"
      ]
  
      # After deserialization all features that share a primitive should use the same primitive instance
      new_is_null_primitive = new_is_null_features[0].primitive
      new_sum_primitive = new_sum_features[0].primitive
      assert all(
          [
              f.primitive is new_is_null_primitive
              for f in new_is_null_features
          ]
      )
      assert all(
          [f.primitive is new_sum_primitive for f in new_sum_features]
      )
  
imports: import os
  import boto3
  import pandas
  import pytest
  from pympler.asizeof import asizeof
  from smart_open import open
  from woodwork.column_schema import ColumnSchema
  from featuretools import AggregationFeature, DirectFeature, EntitySet, Feature, GroupByTransformFeature, IdentityFeature, TransformFeature, dfs, feature_base, load_features, primitives, save_features
  from featuretools.feature_base import FeatureOutputSlice
  from featuretools.feature_base.cache import feature_cache
  from featuretools.feature_base.features_deserializer import FeaturesDeserializer
  from featuretools.feature_base.features_serializer import FeaturesSerializer
  from featuretools.primitives import Count, CumSum, Day, DistanceToHoliday, Haversine, IsIn, Max, Mean, Min, Mode, Month, MultiplyNumericScalar, Negate, NMostCommon, NumberOfCommonWords, NumCharacters, NumUnique, NumWords, PercentTrue, Skew, Std, Sum, TransformPrimitive, Weekday, Year
  from featuretools.primitives.base import AggregationPrimitive
  from featuretools.tests.testing_utils import check_names
  from featuretools.utils.gen_utils import Library
  from featuretools.version import ENTITYSET_SCHEMA_VERSION, FEATURES_SCHEMA_VERSION
label_desc: Use image node_id 15 for calling a global function with example usage: test_deserializer_uses_common_primitive_instances_no_args(es, tmp_path) without return types