parameters: (ast_node, filename, globals, **defaults)
return_statement: return function
docstring: Compile a function from an ast.FunctionDef instance.
      
      :param ast_node: ast.FunctionDef instance
      :param filename: path where function source can be found. 
      :param globals: will be used as func_globals
      
      :return: A python function object
docstring_summary: Compile a function from an ast.FunctionDef instance.
      
      :param ast_node: ast.FunctionDef instance
      :param filename: path where function source can be found. 
      :param globals: will be used as func_globals
      
      :return: A python function object
docstring_tokens: Compile a function from an ast . FunctionDef instance . : param ast_node : ast . FunctionDef instance : param filename : path where function source can be found . : param globals : will be used as func_globals : return : A python function object
function: def compile_func(ast_node, filename, globals, **defaults):
      '''
      Compile a function from an ast.FunctionDef instance.
      
      :param ast_node: ast.FunctionDef instance
      :param filename: path where function source can be found. 
      :param globals: will be used as func_globals
      
      :return: A python function object
      '''
  
      funcion_name = ast_node.name
      module = _ast.Module(body=[ast_node])
  
      ctx = {'%s_default' % key : arg for key, arg in defaults.items()}
  
      code = compile(module, filename, 'exec')
  
      eval(code, globals, ctx)
  
      function = ctx[funcion_name]
  
      return function
function_tokens: def compile_func ( ast_node , filename , globals , * * defaults ) : funcion_name = ast_node . name module = _ast . Module ( body = [ ast_node ] ) ctx = { '%s_default' % key : arg for key , arg in defaults . items ( ) } code = compile ( module , filename , 'exec' ) eval ( code , globals , ctx ) function = ctx [ funcion_name ] return function