mirror of
				https://github.com/nvbn/thefuck.git
				synced 2025-10-31 07:04:12 +00:00 
			
		
		
		
	Merge pull request #436 from scorphus/shelve-open-errors
Fix cache problem when going from Python 3 to 2
This commit is contained in:
		| @@ -4,6 +4,7 @@ import pickle | ||||
| import pkg_resources | ||||
| import re | ||||
| import shelve | ||||
| import six | ||||
| from .conf import settings | ||||
| from contextlib import closing | ||||
| from decorator import decorator | ||||
| @@ -15,6 +16,11 @@ from warnings import warn | ||||
|  | ||||
| DEVNULL = open(os.devnull, 'w') | ||||
|  | ||||
| shelve_open_errors = (dbm.error, ) | ||||
| if six.PY2: | ||||
|     import gdbm | ||||
|     shelve_open_errors += (gdbm.error, ) | ||||
|  | ||||
|  | ||||
| def memoize(fn): | ||||
|     """Caches previous calls to the function.""" | ||||
| @@ -217,8 +223,8 @@ def cache(*depends_on): | ||||
|                     value = fn(*args, **kwargs) | ||||
|                     db[key] = {'etag': etag, 'value': value} | ||||
|                     return value | ||||
|         except dbm.error: | ||||
|             # Caused when going from Python 2 to Python 3 | ||||
|         except shelve_open_errors: | ||||
|             # Caused when going from Python 2 to Python 3 and vice-versa | ||||
|             warn("Removing possibly out-dated cache") | ||||
|             os.remove(cache_path) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user