code: def generate_skeleton_function_impl(
      function_info,
      function_types,
      ext_info={},
      template=None,
      output_dir=None,
      output_format="%s.cpp",
  ):
      if template is None:
          template = join(
              base, "src/nbla/function/generic/function_impl.cpp.tmpl"
          )
      if output_dir is None:
          output_dir = dirname(template)
  
      for name, func in function_info.items():
          if name not in function_types:
              continue
          generate_skeleton_function_impl_one(
              ext_info, name, func, template, output_dir, output_format
          )
  
imports: from __future__ import print_function
  from collections import OrderedDict
  from os.path import abspath, join, dirname, exists
  from utils.common import check_update
  from utils.type_conv import type_from_proto
  import time
  import yaml
label_desc: Use image node_id 20 for calling a global function with example usage: generate_skeleton_function_impl(function_info, function_types, ext_info, template, output_dir, output_format) without return types