code: def _parse_argument_clinic(string):
      allow_kwargs = False
      optional = False
      while string:
          # Optional arguments have to begin with a bracket. And should always be
          # at the end of the arguments. This is therefore not a proper argument
          # clinic implementation. `range()` for exmple allows an optional start
          # value at the beginning.
          match = re.match("(?:(?:(\[),? ?|, ?|)(\w+)|, ?/)\]*", string)
          string = string[len(match.group(0)) :]
          if not match.group(2):  # A slash -> allow named arguments
              allow_kwargs = True
              continue
          optional = optional or bool(match.group(1))
          word = match.group(2)
          yield (word, optional, allow_kwargs)
  
imports: import re
  from parso.python import tree
  from jedi._compatibility import zip_longest
  from jedi import debug
  from jedi.evaluate import analysis
  from jedi.evaluate.lazy_context import LazyKnownContext, LazyKnownContexts, LazyTreeContext, get_merged_lazy_context
  from jedi.evaluate.filters import ParamName
  from jedi.evaluate.base_context import NO_CONTEXTS
  from jedi.evaluate.context import iterable
  from jedi.evaluate.param import get_executed_params, ExecutedParam
label_desc: Use image node_id 4 for calling a global function with example usage: _parse_argument_clinic(string) without return types