diff --git a/oxrlib/cache.py b/oxrlib/cache.py index 6792c3cf0649acfeccc08d83df6b157d5c3e5467..8feb30398b6805804fbd828ba52a47d026ba9d34 100644 --- a/oxrlib/cache.py +++ b/oxrlib/cache.py @@ -6,7 +6,10 @@ from . import errors class CacheFileBase: def __init__(self, path, *args, **kwargs): self.path = path - self.open = functools.partial(path.open, *args, **kwargs) + try: + self.open_file = path.open(*args, **kwargs) + except OSError as error: + self._translate_error(error, 'init') def _translate_error(self, error, when): for orig_type, mapped_type in self.ERRORS_MAP: @@ -15,12 +18,7 @@ class CacheFileBase: raise error def __enter__(self): - try: - self.open_file = self.open() - except OSError as error: - self._translate_error(error, 'enter') - else: - return self.open_file + return self.open_file def __exit__(self, exc_type, exc_value, exc_tb): try: