code: def generate_func_call(name, args=None, kwargs=None):
      
      all_args = []
      if args:
          all_args.extend(args)
      if kwargs:
          all_args.extend('{}={}'.format(k, v)
                          for k, v in kwargs if v is not None)
      return '{}({})'.format(name, ', '.join(all_args))
docs: Generates code to call a function.
  
      Args:
          name (str): The function name.
          args (list[str]): Each positional argument.
          kwargs (list[tuple]): Each tuple is (arg: str, value: str). If
              value is None, then the keyword argument is omitted. Otherwise,
              if the value is not a string, then str() is called on it.
  
      Returns:
          str: Code to call a function.