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,28 +1,20 @@
import sys
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
cookie_pickles_properly = (
(sys.version_info[:2] == (2, 7) and sys.version_info >= (2, 7, 9)) or
sys.version_info >= (3, 4, 3)
)
if cookie_pickles_properly:
if sys.version_info >= (3, 4, 3):
SimpleCookie = cookies.SimpleCookie
else:
Morsel = cookies.Morsel
class SimpleCookie(cookies.SimpleCookie):
if not cookie_pickles_properly:
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):
# allow assignment of constructed Morsels (e.g. for pickling)
dict.__setitem__(self, key, value)
else:
super(SimpleCookie, self).__setitem__(key, value)
def __setitem__(self, key, value):
if isinstance(value, Morsel):
# allow assignment of constructed Morsels (e.g. for pickling)
dict.__setitem__(self, key, value)
else:
super(SimpleCookie, self).__setitem__(key, value)
def parse_cookie(cookie):