import subprocess def apply(file, patch): try: subprocess.check_output(['patch', file, patch]) except subprocess.CalledProcessError as e: message = "Patch failed with exit code {}\n Output:\n {}".format( e.returncode, e.output) print(message) raise def remove(file, patch): try: subprocess.check_output(['patch', '--reverse', file, patch]) except subprocess.CalledProcessError as e: message = "patch --reverse failed with exit code {}\n Output:\n {}".format( e.returncode, e.output) print(message) raise