Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0a2963c

Browse files
committed
Apply SF 562987 modernizing Cookie to subclass from dict instead of UserDict
1 parent 3a159a8 commit 0a2963c

1 file changed

Lines changed: 11 additions & 15 deletions

File tree

Lib/Cookie.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@
216216
# Import our required modules
217217
#
218218
import string
219-
from UserDict import UserDict
220219

221220
try:
222221
from cPickle import dumps, loads
@@ -406,7 +405,7 @@ def _getdate(future=0, weekdayname=_weekdayname, monthname=_monthname):
406405
# pickled for network transit.
407406
#
408407

409-
class Morsel(UserDict):
408+
class Morsel(dict):
410409
# RFC 2109 lists these attributes as reserved:
411410
# path comment domain
412411
# max-age secure version
@@ -425,35 +424,33 @@ class Morsel(UserDict):
425424
"secure" : "secure",
426425
"version" : "Version",
427426
}
428-
_reserved_keys = _reserved.keys()
429427

430428
def __init__(self):
431429
# Set defaults
432430
self.key = self.value = self.coded_value = None
433-
UserDict.__init__(self)
434431

435432
# Set default attributes
436-
for K in self._reserved_keys:
437-
UserDict.__setitem__(self, K, "")
433+
for K in self._reserved:
434+
dict.__setitem__(self, K, "")
438435
# end __init__
439436

440437
def __setitem__(self, K, V):
441438
K = K.lower()
442-
if not K in self._reserved_keys:
439+
if not K in self._reserved:
443440
raise CookieError("Invalid Attribute %s" % K)
444-
UserDict.__setitem__(self, K, V)
441+
dict.__setitem__(self, K, V)
445442
# end __setitem__
446443

447444
def isReservedKey(self, K):
448-
return K.lower() in self._reserved_keys
445+
return K.lower() in self._reserved
449446
# end isReservedKey
450447

451448
def set(self, key, val, coded_val,
452449
LegalChars=_LegalChars,
453450
idmap=string._idmap, translate=string.translate ):
454451
# First we verify that the key isn't a reserved word
455452
# Second we make sure it only contains legal characters
456-
if key.lower() in self._reserved_keys:
453+
if key.lower() in self._reserved:
457454
raise CookieError("Attempt to set a reserved key: %s" % key)
458455
if "" != translate(key, idmap, LegalChars):
459456
raise CookieError("Illegal key value: %s" % key)
@@ -495,7 +492,7 @@ def OutputString(self, attrs=None):
495492

496493
# Now add any defined attributes
497494
if attrs is None:
498-
attrs = self._reserved_keys
495+
attrs = self._reserved
499496
items = self.items()
500497
items.sort()
501498
for K,V in items:
@@ -546,7 +543,7 @@ def OutputString(self, attrs=None):
546543
# Using this class is almost just like using a dictionary.
547544
# See this module's docstring for example usage.
548545
#
549-
class BaseCookie(UserDict):
546+
class BaseCookie(dict):
550547
# A container class for a set of Morsels
551548
#
552549

@@ -571,15 +568,14 @@ def value_encode(self, val):
571568
# end value_encode
572569

573570
def __init__(self, input=None):
574-
UserDict.__init__(self)
575571
if input: self.load(input)
576572
# end __init__
577573

578574
def __set(self, key, real_value, coded_value):
579575
"""Private method for setting a cookie's value"""
580576
M = self.get(key, Morsel())
581577
M.set(key, real_value, coded_value)
582-
UserDict.__setitem__(self, key, M)
578+
dict.__setitem__(self, key, M)
583579
# end __set
584580

585581
def __setitem__(self, key, value):
@@ -651,7 +647,7 @@ def __ParseString(self, str, patt=_CookiePattern):
651647
# (Does anyone care?)
652648
if M:
653649
M[ K[1:] ] = V
654-
elif K.lower() in Morsel._reserved_keys:
650+
elif K.lower() in Morsel._reserved:
655651
if M:
656652
M[ K ] = _unquote(V)
657653
else:

0 commit comments

Comments
 (0)