summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-04-16 11:11:55 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-04-16 11:11:55 +0000
commit94a968cfc60e16d3fa8180ae76dce35bc931e374 (patch)
treec38208a0208ba583f17f7585b6bcf42a32cd25c9 /django
parenta213599db7781c8945f161fd77e5c4b706b99853 (diff)
Fixed #13357 -- Minor changes to get Django running under PyPy. Thanks to Alex Gaynor for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12991 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/options.py4
-rw-r--r--django/core/cache/backends/filebased.py39
2 files changed, 26 insertions, 17 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index 2c2bcd541a..1d3a15048e 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -73,7 +73,9 @@ class BaseModelAdmin(object):
readonly_fields = ()
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 91f0b78fa6..fe833336d0 100644
--- a/django/core/cache/backends/filebased.py
+++ b/django/core/cache/backends/filebased.py
@@ -42,13 +42,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
@@ -67,9 +69,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
@@ -93,14 +98,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