docs: def compile_file(self, filename, encoding="utf-8", bare=False):
          '''compile a CoffeeScript script file to a JavaScript code.
  
          filename can be a list or tuple of filenames,
          then contents of files are concatenated with line feeds.
  
          if bare is True, then compile the JavaScript without the top-level
          function safety wrapper (like the coffee command).
          '''
          if isinstance(filename, _BaseString):
              filename = [filename]
  
          scripts = []
          for f in filename:
              with io.open(f, encoding=encoding) as fp:
                  scripts.append(fp.read())
  
          return self.compile('\n\n'.join(scripts), bare=bare)