code: def tuples(
      *args: SearchStrategy[Any],
  ) -> SearchStrategy[Tuple[Any, ...]]:
      """Return a strategy which generates a tuple of the same length as args by
      generating the value at index i from args[i].
  
      e.g. tuples(integers(), integers()) would generate a tuple of length
      two with both values an integer.
  
      Examples from this strategy shrink by shrinking their component parts.
      """
      for arg in args:
          check_strategy(arg)
  
      return TupleStrategy(args)
  
imports: import copy
  from typing import Any, Iterable, Tuple, overload
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.conjecture import utils
  from hypothesis.internal.conjecture.junkdrawer import LazySequenceCopy
  from hypothesis.internal.conjecture.utils import combine_labels
  from hypothesis.internal.reflection import is_identity_function
  from hypothesis.strategies._internal.strategies import T3, T4, T5, Ex, MappedSearchStrategy, SearchStrategy, T, check_strategy, filter_not_satisfied
  from hypothesis.strategies._internal.utils import cacheable, defines_strategy
label_desc: Use image node_id 8 for calling a global function with example usage: tuples() and returns: TupleStrategy