parameters: (self, source, name=None, filename=None, raw=False,
                  defer_init=False)
docstring: Compile a node or template source code.  The `name` parameter is
          the load name of the template after it was joined using
          :meth:`join_path` if necessary, not the filename on the file system.
          the `filename` parameter is the estimated filename of the template on
          the file system.  If the template came from a database or memory this
          can be omitted.
  
          The return value of this method is a python code object.  If the `raw`
          parameter is `True` the return value will be a string with python
          code equivalent to the bytecode returned otherwise.  This method is
          mainly used internally.
  
          `defer_init` is use internally to aid the module code generator.  This
          causes the generated code to be able to import without the global
          environment variable to be set.
  
          .. versionadded:: 2.4
             `defer_init` parameter added.
docstring_summary: Compile a node or template source code.  The `name` parameter is
          the load name of the template after it was joined using
          :meth:`join_path` if necessary, not the filename on the file system.
          the `filename` parameter is the estimated filename of the template on
          the file system.  If the template came from a database or memory this
          can be omitted.
docstring_tokens: Compile a node or template source code . The name parameter is the load name of the template after it was joined using : meth : join_path if necessary not the filename on the file system . the filename parameter is the estimated filename of the template on the file system . If the template came from a database or memory this can be omitted .
function: def compile(self, source, name=None, filename=None, raw=False,
                  defer_init=False):
          """Compile a node or template source code.  The `name` parameter is
          the load name of the template after it was joined using
          :meth:`join_path` if necessary, not the filename on the file system.
          the `filename` parameter is the estimated filename of the template on
          the file system.  If the template came from a database or memory this
          can be omitted.
  
          The return value of this method is a python code object.  If the `raw`
          parameter is `True` the return value will be a string with python
          code equivalent to the bytecode returned otherwise.  This method is
          mainly used internally.
  
          `defer_init` is use internally to aid the module code generator.  This
          causes the generated code to be able to import without the global
          environment variable to be set.
  
          .. versionadded:: 2.4
             `defer_init` parameter added.
          """
          source_hint = None
          try:
              if isinstance(source, string_types):
                  source_hint = source
                  source = self._parse(source, name, filename)
              if self.optimized:
                  source = optimize(source, self)
              source = self._generate(source, name, filename,
                                      defer_init=defer_init)
              if raw:
                  return source
              if filename is None:
                  filename = '<template>'
              else:
                  filename = encode_filename(filename)
              return self._compile(source, filename)
          except TemplateSyntaxError:
              exc_info = sys.exc_info()
          self.handle_exception(exc_info, source_hint=source)
function_tokens: def compile ( self , source , name = None , filename = None , raw = False , defer_init = False ) : source_hint = None try : if isinstance ( source , string_types ) : source_hint = source source = self . _parse ( source , name , filename ) if self . optimized : source = optimize ( source , self ) source = self . _generate ( source , name , filename , defer_init = defer_init ) if raw : return source if filename is None : filename = '<template>' else : filename = encode_filename ( filename ) return self . _compile ( source , filename ) except TemplateSyntaxError : exc_info = sys . exc_info ( ) self . handle_exception ( exc_info , source_hint = source )