code: def get_feature_depth(feature, stop_at=None):
      """Helper method to allow caching of feature.get_depth()
      Why here and not in FeatureBase?  Putting t in FeatureBase was causing
      some weird pickle errors in spark tests in 3.9 and this keeps the caching
      local to DFS.
      """
      hash_key = hash(
          f"{feature.get_name()}{feature.dataframe_name}{stop_at}"
      )
      if cached_depth := feature_cache.get(CacheType.DEPTH, hash_key):
          return cached_depth
      depth = feature.get_depth(stop_at=stop_at)
      feature_cache.add(CacheType.DEPTH, hash_key, depth)
      return depth
  
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 14 for calling a global function with example usage: get_feature_depth(feature, stop_at) and returns: depth, cached_depth