docs: def from_file(cls, file, charset='utf-8', errors='strict',
                    unicode_mode=True):
          """Load a template from a file.
  
          .. versionchanged:: 0.5
              The encoding parameter was renamed to charset.
  
          :param file: a filename or file object to load the template from.
          :param charset: the charset of the template to load.
          :param errors: the error behavior of the charset decoding.
          :param unicode_mode: set to `False` to disable unicode mode.
          :return: a template
          """
          close = False
          f = file
          if isinstance(file, basestring):
              f = open(file, 'r')
              close = True
          try:
              data = _decode_unicode(f.read(), charset, errors)
          finally:
              if close:
                  f.close()
          return cls(data, getattr(f, 'name', '<template>'), charset,
                     errors, unicode_mode)