code: def _split_comment_param_declaration(decl_text):
      """
      Split decl_text on commas, but group generic expressions
      together.
  
      For example, given "foo, Bar[baz, biz]" we return
      ['foo', 'Bar[baz, biz]'].
  
      """
      try:
          node = parse(decl_text, error_recovery=False).children[0]
      except ParserSyntaxError:
          debug.warning(
              "Comment annotation is not valid Python: %s" % decl_text
          )
          return []
  
      if node.type == "name":
          return [node.get_code().strip()]
  
      params = []
      try:
          children = node.children
      except AttributeError:
          return []
      else:
          for child in children:
              if child.type in ["name", "atom_expr", "power"]:
                  params.append(child.get_code().strip())
  
      return params
  
imports: import os
  import re
  from parso import ParserSyntaxError, parse, split_lines
  from parso.python import tree
  from jedi._compatibility import unicode, force_unicode
  from jedi.evaluate.cache import evaluator_method_cache
  from jedi.evaluate import compiled
  from jedi.evaluate.base_context import NO_CONTEXTS, ContextSet
  from jedi.evaluate.lazy_context import LazyTreeContext
  from jedi.evaluate.context import ModuleContext
  from jedi.evaluate.helpers import is_string
  from jedi import debug
  from jedi import parser_utils
label_desc: Use image node_id 5 for calling a global function with example usage: _split_comment_param_declaration(decl_text) and returns: params, list, list, list