Replace atexit with __exit__

This commit is contained in:
Jeremy Singer-Vine
2016-03-09 07:00:18 -05:00
parent e7c5013cb3
commit f4f93e4bb0
+7 -3
View File
@@ -9,8 +9,6 @@ from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.layout import LAParams
from pdfminer.converter import PDFPageAggregator
import atexit
class PDF(Container):
cached_properties = Container.cached_properties + [ "_pages" ]
@@ -30,7 +28,6 @@ class PDF(Container):
self.metadata[k] = decode_text(v)
self.device = PDFPageAggregator(rsrcmgr, laparams=self.laparams)
self.interpreter = PDFPageInterpreter(rsrcmgr, self.device)
atexit.register(self.close)
def process_page(self, page):
self.interpreter.process_page(page)
@@ -53,6 +50,13 @@ class PDF(Container):
def close(self):
self.stream.close()
def __enter__(self):
return self
def __exit__(self, type, value, traceback):
self.flush_cache()
self.close()
@property
def objects(self):
if hasattr(self, "_objects"): return self._objects