diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2010-04-16 11:15:21 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2010-04-16 11:15:21 +0000 |
| commit | e7ef1b220ea0bd67355d3672dd4b478c881527d6 (patch) | |
| tree | 4342d8f4da8186af851e22ba3124951f3f606a0b /django | |
| parent | 534dc44dba2aa7c3da4b91812ef831afb693234c (diff) | |
[1.1.X] Fixed #13357 -- Minor changes to get Django running under PyPy. Thanks to Alex Gaynor for the patch.
Backport of r12991 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12992 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/options.py | 4 | ||||
| -rw-r--r-- | django/core/cache/backends/filebased.py | 39 |
2 files changed, 26 insertions, 17 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 44d5d0b7f1..7cd2476efb 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -63,7 +63,9 @@ class BaseModelAdmin(object): formfield_overrides = {} def __init__(self): - self.formfield_overrides = dict(FORMFIELD_FOR_DBFIELD_DEFAULTS, **self.formfield_overrides) + overrides = FORMFIELD_FOR_DBFIELD_DEFAULTS.copy() + overrides.update(self.formfield_overrides) + self.formfield_overrides = overrides def formfield_for_dbfield(self, db_field, **kwargs): """ diff --git a/django/core/cache/backends/filebased.py b/django/core/cache/backends/filebased.py index 181197a8d7..08ef011033 100644 --- a/django/core/cache/backends/filebased.py +++ b/django/core/cache/backends/filebased.py @@ -41,13 +41,15 @@ class CacheClass(BaseCache): fname = self._key_to_file(key) try: f = open(fname, 'rb') - exp = pickle.load(f) - now = time.time() - if exp < now: + try: + exp = pickle.load(f) + now = time.time() + if exp < now: + self._delete(fname) + else: + return pickle.load(f) + finally: f.close() - self._delete(fname) - else: - return pickle.load(f) except (IOError, OSError, EOFError, pickle.PickleError): pass return default @@ -66,9 +68,12 @@ class CacheClass(BaseCache): os.makedirs(dirname) f = open(fname, 'wb') - now = time.time() - pickle.dump(now + timeout, f, pickle.HIGHEST_PROTOCOL) - pickle.dump(value, f, pickle.HIGHEST_PROTOCOL) + try: + now = time.time() + pickle.dump(now + timeout, f, pickle.HIGHEST_PROTOCOL) + pickle.dump(value, f, pickle.HIGHEST_PROTOCOL) + finally: + f.close() except (IOError, OSError): pass @@ -92,14 +97,16 @@ class CacheClass(BaseCache): fname = self._key_to_file(key) try: f = open(fname, 'rb') - exp = pickle.load(f) - now = time.time() - if exp < now: + try: + exp = pickle.load(f) + now = time.time() + if exp < now: + self._delete(fname) + return False + else: + return True + finally: f.close() - self._delete(fname) - return False - else: - return True except (IOError, OSError, EOFError, pickle.PickleError): return False |
