class_docstr: This loader loads templates from precompiled templates.
  
  Example usage:
  
  >>> loader = ChoiceLoader([
  ...     ModuleLoader('/path/to/compiled/templates'),
  ...     FileSystemLoader('/path/to/templates')
  ... ])
  
  Templates can be precompiled with :meth:`Environment.compile_templates`.
class_docstr_tok: ["This","loader","loads","templates","from","precompiled","templates",".","Example","usage",":",">",">",">","loader","=","ChoiceLoader","(","[","...","ModuleLoader","(","'\/path\/to\/compiled\/templates","'",")",",","...","FileSystemLoader","(","'\/path\/to\/templates","'",")","...","]",")","Templates","can","be","precompiled","with",":","meth",":","`","Environment.compile_templates","`","."]
code: def load(self, environment, name, globals=None):
      key = self.get_template_key(name)
      module = "%s.%s" % (self.package_name, key)
      mod = getattr(self.module, module, None)
      if mod is None:
          try:
              mod = __import__(module, None, None, ["root"])
          except ImportError:
              raise TemplateNotFound(name)
  
          # remove the entry from sys.modules, we only want the attribute
          # on the module object we have stored on the loader.
          sys.modules.pop(module, None)
  
      return environment.template_class.from_module_dict(
          environment, mod.__dict__, globals
      )
  
imports: import os
  import sys
  import weakref
  from hashlib import sha1
  from os import path
  from types import ModuleType
  from ._compat import abc
  from ._compat import fspath
  from ._compat import iteritems
  from ._compat import string_types
  from .exceptions import TemplateNotFound
  from .utils import internalcode
  from .utils import open_if_exists
label_desc: Use image node_id 4 for calling the ModuleLoader obj's underlying member method code with example usage: obj.load(environment, name, globals) and returns: environment