code: def _deprecate_positional_args(*, version: str):
      """Decorator for methods that issues warnings for positional arguments.
      Using the keyword-only argument syntax in pep 3102, arguments after the
      * will issue a warning when passed as a positional argument.
  
      Args:
          version (`str`):
              The version when positional arguments will result in error.
      """
  
      def _inner_deprecate_positional_args(f):
          sig = signature(f)
          kwonly_args = []
          all_args = []
          for name, param in sig.parameters.items():
              if param.kind == Parameter.POSITIONAL_OR_KEYWORD:
                  all_args.append(name)
              elif param.kind == Parameter.KEYWORD_ONLY:
                  kwonly_args.append(name)
  
          @wraps(f)
          def inner_f(*args, **kwargs):
              extra_args = len(args) - len(all_args)
              if extra_args <= 0:
                  return f(*args, **kwargs)
              # extra_args > 0
              args_msg = [
                  f"{name}='{arg}'"
                  if isinstance(arg, str)
                  else f"{name}={arg}"
                  for name, arg in zip(
                      kwonly_args[:extra_args], args[-extra_args:]
                  )
              ]
              args_msg = ", ".join(args_msg)
              warnings.warn(
                  f"Deprecated positional argument(s) used in '{f.__name__}': pass"
                  f" {args_msg} as keyword args. From version {version} passing these"
                  " as positional arguments will result in an error,",
                  FutureWarning,
              )
              kwargs.update(zip(sig.parameters, args))
              return f(**kwargs)
  
          return inner_f
  
      return _inner_deprecate_positional_args
  
imports: import warnings
  from functools import wraps
  from inspect import Parameter, signature
  from typing import Iterable, Optional
label_desc: Use image node_id 1 for calling a global function with example usage: _deprecate_positional_args() and returns: _inner_deprecate_positional_args, inner_f, f, f