code: def multiple_values(
      num_values: int = 0,
      greater_or_equal: Optional[float] = None,
      data_type: Callable = int,
  ) -> Callable:
      """
      Returns a method to be used in argument parsing to parse a string of the form "<val>:<val>[:<val>...]" into
      a tuple of values of type data_type.
  
      :param num_values: Optional number of ints required.
      :param greater_or_equal: Optional constraint that all values should be greater or equal to this value.
      :param data_type: Type of values. Default: int.
      :return: Method for parsing.
      """
  
      def parse(value_to_check):
          if ":" in value_to_check:
              expected_num_separators = (
                  num_values - 1 if num_values else 0
              )
              if expected_num_separators > 0 and (
                  value_to_check.count(":") != expected_num_separators
              ):
                  raise argparse.ArgumentTypeError(
                      "Expected either a single value or %d values separated by %s"
                      % (num_values, C.ARG_SEPARATOR)
                  )
              values = tuple(
                  map(
                      data_type,
                      value_to_check.split(
                          C.ARG_SEPARATOR, num_values - 1
                      ),
                  )
              )
          else:
              values = tuple([data_type(value_to_check)] * num_values)
          if greater_or_equal is not None:
              if any((value < greater_or_equal for value in values)):
                  raise argparse.ArgumentTypeError(
                      "Must provide value greater or equal to %d"
                      % greater_or_equal
                  )
          return values
  
      return parse
  
imports: import argparse
  import os
  import sys
  import types
  from typing import Any, Callable, Dict, List, Tuple, Optional
  import yaml
  from sockeye.utils import smart_open
  from .None import constants
label_desc: Use image node_id 9 for calling a global function with example usage: multiple_values(num_values, greater_or_equal, data_type) and returns: parse, values