code: def encrypt_file(self,
                       path,
                       output_path=None,
                       overwrite=False,
                       stream=True,
                       enable_verbose=True,
                       **kwargs):
          
          path, output_path = files.process_dst_overwrite_args(
              src=path, dst=output_path, overwrite=overwrite,
              src_to_dst_func=files.get_encrpyted_path,
          )
  
          self._show("Encrypt '%s' ..." % path, enable_verbose=enable_verbose)
          st = time.clock()
          files.transform(path, output_path, converter=self.encrypt,
                          overwrite=overwrite, stream=stream,
                          chunksize=self._encrypt_chunk_size)
          self._show("    Finished! Elapse %.6f seconds" % (time.clock() - st,),
                     enable_verbose=enable_verbose)
  
          return output_path
docs: Encrypt a file. If output_path are not given, then try to use the
          path with a surfix appended. The default automatical file path handling
          is defined here :meth:`windtalker.files.get_encrypted_file_path`
  
          :param path: path of the file you need to encrypt
          :param output_path: encrypted file output path
          :param overwrite: if True, then silently overwrite output file if exists
          :param stream: if it is a very big file, stream mode can avoid using
            too much memory
          :param enable_verbose: boolean, trigger on/off the help information