docs: def select_template(template_name_list, using=None):
      """
      Loads and returns a template for one of the given names.
      Tries names in order and returns the first template found.
      Raises TemplateDoesNotExist if no such template exists.
      """
      if isinstance(template_name_list, six.string_types):
          raise TypeError(
              'select_template() takes an iterable of template names but got a '
              'string: %r. Use get_template() if you want to load a single '
              'template by name.' % template_name_list
          )
  
      engines = _engine_list(using)
      for template_name in template_name_list:
          for engine in engines:
              try:
                  return engine.get_template(template_name)
              except TemplateDoesNotExist as e:
                  pass
  
      if template_name_list:
          raise TemplateDoesNotExist(', '.join(template_name_list))
      else:
          raise TemplateDoesNotExist("No template names provided")