text: # Copyright 2013 The Chromium Authors. All rights reserved.
  # Use of this source code is governed by a BSD-style license that can be
  # found in the LICENSE file.
  
  class Patcher(object):
    def GetPatchedFiles(self, version=None):
      '''Returns patched files as(added_files, deleted_files, modified_files)
      from the patchset specified by |version|.
      '''
      raise NotImplementedError(self.__class__)
  
    def GetVersion(self):
      '''Returns patch version. Returns None when nothing is patched by the
      patcher.
      '''
      raise NotImplementedError(self.__class__)
  
    def Apply(self, paths, file_system, binary, version=None):
      '''Apply the patch to added/modified files. Returns Future with patched
      data. Throws FileNotFoundError if |paths| contains deleted files.
      '''
      raise NotImplementedError(self.__class__)
  
    def GetIdentity(self):
      '''Returns a string that identifies this patch. Typically it would be the
      codereview server's ID for this patch.
      '''
      raise NotImplementedError(self.__class__)
  