Refs #23919 -- Removed Python 2 version check in django.http.cookie.

This commit is contained in:
Tim Graham 2017-01-19 20:06:03 -05:00
parent eb0b921c29
commit fedda6d9bd
1 changed files with 8 additions and 16 deletions

View File

@ -1,23 +1,15 @@
import sys import sys
from http import cookies from http import cookies
# Cookie pickling bug is fixed in Python 2.7.9 and Python 3.4.3+ # Cookie pickling bug is fixed in Python 3.4.3+
# http://bugs.python.org/issue22775 # http://bugs.python.org/issue22775
cookie_pickles_properly = ( if sys.version_info >= (3, 4, 3):
(sys.version_info[:2] == (2, 7) and sys.version_info >= (2, 7, 9)) or
sys.version_info >= (3, 4, 3)
)
if cookie_pickles_properly:
SimpleCookie = cookies.SimpleCookie SimpleCookie = cookies.SimpleCookie
else: else:
Morsel = cookies.Morsel Morsel = cookies.Morsel
class SimpleCookie(cookies.SimpleCookie): class SimpleCookie(cookies.SimpleCookie):
if not cookie_pickles_properly:
def __setitem__(self, key, value): def __setitem__(self, key, value):
# Apply the fix from http://bugs.python.org/issue22775 where
# it's not fixed in Python itself
if isinstance(value, Morsel): if isinstance(value, Morsel):
# allow assignment of constructed Morsels (e.g. for pickling) # allow assignment of constructed Morsels (e.g. for pickling)
dict.__setitem__(self, key, value) dict.__setitem__(self, key, value)