code: def _get_call_signature_details_from_error_node(node, position):
      for index, element in reversed(list(enumerate(node.children))):
          # `index > 0` means that it's a trailer and not an atom.
          if (
              element == "("
              and element.end_pos <= position
              and index > 0
          ):
              # It's an error node, we don't want to match too much, just
              # until the parentheses is enough.
              children = node.children[index:]
              name = element.get_previous_leaf()
              if name is None:
                  continue
              if name.type == "name" or name.parent.type in (
                  "trailer",
                  "atom",
              ):
                  return CallSignatureDetails(
                      element, *_get_index_and_key(children, position)
                  )
  
imports: import re
  from collections import namedtuple
  from textwrap import dedent
  from parso.python.parser import Parser
  from parso.python import tree
  from jedi._compatibility import u
  from jedi.evaluate.syntax_tree import eval_atom
  from jedi.evaluate.helpers import evaluate_call_of_leaf
  from jedi.evaluate.compiled import get_string_context_set
  from jedi.cache import call_signature_time_cache
label_desc: Use image node_id 8 for calling a global function with example usage: _get_call_signature_details_from_error_node(node, position) and returns: CallSignatureDetails