original_docstring: 
      Make a new function from a given template and update the signature
  
      :param func_name:
      :param params_names:
      :param body:
      :param evaldict:
      :param add_source:
      :return:
      
docstring: Make a new function from a given template and update the signature
docstring_tokens: Make a new function from a given template and update the signature
code: def _make(funcname, params_names, body, evaldict=None):
      """
      Make a new function from a given template and update the signature
  
      :param func_name:
      :param params_names:
      :param body:
      :param evaldict:
      :param add_source:
      :return:
      """
      evaldict = evaldict or {}
      for n in params_names:
          if n in ('_func_', '_func_impl_'):
              raise NameError('%s is overridden in\n%s' % (n, body))
  
      if not body.endswith('\n'):  # newline is needed for old Pythons
          raise ValueError("body should end with a newline")
  
      # Ensure each generated function has a unique filename for profilers
      # (such as cProfile) that depend on the tuple of (<filename>,
      # <definition line>, <function name>) being unique.
      filename = '<makefun-gen-%d>' % (next(_compile_count),)
      try:
          code = compile(body, filename, 'single')
          exec(code, evaldict)
      except:
          print('Error in generated code:', file=sys.stderr)
          print(body, file=sys.stderr)
          raise
  
      # extract the function from compiled code
      func = evaldict[funcname]
  
      return func
code_tokens: def _make ( funcname , params_names , body , evaldict = None ) : evaldict = evaldict or { } for n in params_names : if n in ( '_func_' , '_func_impl_' ) : raise NameError ( '%s is overridden in\n%s' % ( n , body ) ) if not body . endswith ( '\n' ) : raise ValueError ( "body should end with a newline" ) filename = '<makefun-gen-%d>' % ( next ( _compile_count ) , ) try : code = compile ( body , filename , 'single' ) exec ( code , evaldict ) except : print ( 'Error in generated code:' , file = sys . stderr ) print ( body , file = sys . stderr ) raise func = evaldict [ funcname ] return func
short_docstring: Make a new function from a given template and update the signature
short_docstring_tokens: Make a new function from a given template and update the signature
comment: """
      Make a new function from a given template and update the signature
  
      :param func_name:
      :param params_names:
      :param body:
      :param evaldict:
      :param add_source:
      :return:
      """$SEP$# newline is needed for old Pythons$SEP$# Ensure each generated function has a unique filename for profilers$SEP$# (such as cProfile) that depend on the tuple of (<filename>,$SEP$# <definition line>, <function name>) being unique.$SEP$# extract the function from compiled code