import tempfile
import shutil


class TempDirContext:

    def __init__(self, prefix =''):
        self.temp_dir = None
        self.prefix=prefix

    def __enter__(self):
        self.temp_dir = tempfile.mkdtemp(prefix=self.prefix)
        return self.temp_dir

    def __exit__(self, exc_type, exc_val, exc_tb):
        if exc_val:
            return False
        shutil.rmtree(self.temp_dir, ignore_errors=True)

@@ -47,17 +47,16 @@
 ontext:%0A
-%0A
     def 
@@ -73,16 +73,41 @@
 elf,
+ remove_dir_on_error=True,
  prefix
- 
 ='')
@@ -160,15 +160,73 @@
 efix
-=
+ = 
 prefix
+%0A        self._remove_dir_on_error = remove_dir_on_error
 %0A%0A  
@@ -405,42 +405,68 @@
  if 
+not 
 exc_val
-:%0A            return False%0A
+ or (exc_val and self._remove_dir_on_error):%0A    
     
@@ -518,8 +518,9 @@
 s=True)%0A
+%0A

add remove_dir_on_error in ctor