code: def shrink_pass_family(f):
      def accept(*args):
          name = "{}({})".format(f.__name__, ", ".join(map(repr, args)))
          if name not in SHRINK_PASS_DEFINITIONS:
  
              def run(self, chooser):
                  return f(self, chooser, *args)
  
              run.__name__ = name
              defines_shrink_pass()(run)
          assert name in SHRINK_PASS_DEFINITIONS
          return name
  
      return accept
  
imports: from collections import defaultdict
  from typing import TYPE_CHECKING, Callable, Dict, Optional
  import attr
  from hypothesis.internal.compat import int_from_bytes, int_to_bytes
  from hypothesis.internal.conjecture.choicetree import ChoiceTree, prefix_selection_order, random_selection_order
  from hypothesis.internal.conjecture.data import DRAW_FLOAT_LABEL, ConjectureData, ConjectureResult, Status
  from hypothesis.internal.conjecture.dfa import ConcreteDFA
  from hypothesis.internal.conjecture.floats import float_to_lex, lex_to_float
  from hypothesis.internal.conjecture.junkdrawer import binary_search, find_integer, replace_all
  from hypothesis.internal.conjecture.shrinking import Float, Integer, Lexical, Ordering
  from hypothesis.internal.conjecture.shrinking.learned_dfas import SHRINKING_DFAS
label_desc: Use image node_id 3 for calling a global function with example usage: shrink_pass_family(f) and returns: accept, name, f