code: def get_info_on_inputs(named_inputs, n_unnamed_inputs):
      """
      Return a human-readable description of named and un-named inputs.
  
      """
      n_named_inputs = len(named_inputs)
  
      def get_plural(n):
          if n > 1:
              return "s"
          else:
              return ""
  
      if n_named_inputs == 0:
          if n_unnamed_inputs == 0:
              msg = "The function is supposed to have no input."
          else:
              if n_unnamed_inputs == 1:
                  msg = (
                      "The function has a single input variable which has no "
                      "name, and thus cannot be assigned through a keyword"
                      " argument (use 'name=...' in a Variable's "
                      "constructor to give it a name)."
                  )
              else:
                  # Use plural.
                  msg = (
                      "The function has %s inputs, but none of them is named,"
                      " and thus they cannot be assigned through keyword "
                      "arguments (use 'name=...' in a Variable's "
                      "constructor to give it a name)."
                      % n_unnamed_inputs
                  )
      else:
          if n_unnamed_inputs == 0:
              msg = "The function has %s named input%s (%s)." % (
                  n_named_inputs,
                  get_plural(n_named_inputs),
                  ", ".join(named_inputs),
              )
          else:
              msg = (
                  "The function has %s named input%s (%s), and %s unnamed "
                  "input%s which thus cannot be accessed through keyword "
                  "argument%s (use 'name=...' in a variable's constructor "
                  "to give it a name)."
                  % (
                      n_named_inputs,
                      get_plural(n_named_inputs),
                      ", ".join(named_inputs),
                      n_unnamed_inputs,
                      get_plural(n_unnamed_inputs),
                      get_plural(n_unnamed_inputs),
                  )
              )
      return msg
  
imports: from __future__ import absolute_import, print_function, division
  import copy
  from six import string_types, iteritems, iterkeys
  from six.moves import xrange
  import six.moves.copyreg
  import six.moves.cPickle
  from itertools import chain
  import time
  import warnings
  import numpy
  import theano
  from theano import config, gof
  from theano.compat import izip
  from theano.gof import graph
  import theano.compile.profiling
  from theano.compile.io import In, SymbolicInput, SymbolicOutput
  from theano.compile.ops import deep_copy_op, view_op
  from theano.gof.graph import is_same_graph
  from theano.gof.op import ops_with_inner_function
  import logging
label_desc: Use image node_id 14 for calling a global function with example usage: get_info_on_inputs(named_inputs, n_unnamed_inputs) and returns: msg, str, str