class_docstr: This loader works like the `PrefixLoader` just that no prefix is
  specified.  If a template could not be found by one loader the next one
  is tried.
  
  >>> loader = ChoiceLoader([
  ...     FileSystemLoader('/path/to/user/templates'),
  ...     FileSystemLoader('/path/to/system/templates')
  ... ])
  
  This is useful if you want to allow users to override builtin templates
  from a different location.
class_docstr_tok: ["This","loader","works","like","the","`","PrefixLoader","`","just","that","no","prefix","is","specified",".","If","a","template","could","not","be","found","by","one","loader","the","next","one","is","tried",".",">",">",">","loader","=","ChoiceLoader","(","[","...","FileSystemLoader","(","'\/path\/to\/user\/templates","'",")",",","...","FileSystemLoader","(","'\/path\/to\/system\/templates","'",")","...","]",")","This","is","useful","if","you","want","to","allow","users","to","override","builtin","templates","from","a","different","location","."]
code: def load(self, environment, name, globals=None):
      for loader in self.loaders:
          try:
              return loader.load(environment, name, globals)
          except TemplateNotFound:
              pass
      raise TemplateNotFound(name)
  
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 3 for calling the ChoiceLoader obj's underlying member method code with example usage: obj.load(environment, name, globals) and returns: loader