Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
cc283378
Kaydet (Commit)
cc283378
authored
Ock 13, 2017
tarafından
Serhiy Storchaka
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #29192: Removed deprecated features in the http.cookies module.
üst
009b0a1f
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
57 deletions
+22
-57
http.cookies.rst
Doc/library/http.cookies.rst
+5
-13
3.7.rst
Doc/whatsnew/3.7.rst
+7
-0
cookies.py
Lib/http/cookies.py
+1
-29
test_http_cookies.py
Lib/test/test_http_cookies.py
+7
-15
NEWS
Misc/NEWS
+2
-0
No files found.
Doc/library/http.cookies.rst
Dosyayı görüntüle @
cc283378
...
...
@@ -148,39 +148,31 @@ Morsel Objects
:meth:`~Morsel.__eq__` now takes :attr:`~Morsel.key` and :attr:`~Morsel.value`
into account.
.. versionchanged:: 3.7
Attributes :attr:`~Morsel.key`, :attr:`~Morsel.value` and
:attr:`~Morsel.coded_value` are read-only. Use :meth:`~Morsel.set` for
setting them.
.. attribute:: Morsel.value
The value of the cookie.
.. deprecated:: 3.5
assigning to ``value``; use :meth:`~Morsel.set` instead.
.. attribute:: Morsel.coded_value
The encoded value of the cookie --- this is what should be sent.
.. deprecated:: 3.5
assigning to ``coded_value``; use :meth:`~Morsel.set` instead.
.. attribute:: Morsel.key
The name of the cookie.
.. deprecated:: 3.5
assigning to ``key``; use :meth:`~Morsel.set` instead.
.. method:: Morsel.set(key, value, coded_value)
Set the *key*, *value* and *coded_value* attributes.
.. deprecated:: 3.5
The undocumented *LegalChars* parameter is ignored and will be removed in
a future version.
.. method:: Morsel.isReservedKey(K)
...
...
Doc/whatsnew/3.7.rst
Dosyayı görüntüle @
cc283378
...
...
@@ -153,3 +153,10 @@ Changes in the Python API
* A format string argument for :meth:`string.Formatter.format`
is now :ref:`positional-only <positional-only_parameter>`.
(Contributed by Serhiy Storchaka in :issue:`29193`.)
* Attributes :attr:`~http.cookies.Morsel.key`,
:attr:`~http.cookies.Morsel.value` and
:attr:`~http.cookies.Morsel.coded_value` of class
:class:`http.cookies.Morsel` are now read-only.
Use the :meth:`~http.cookies.Morsel.set` method for setting them.
(Contributed by Serhiy Storchaka in :issue:`29192`.)
Lib/http/cookies.py
Dosyayı görüntüle @
cc283378
...
...
@@ -138,12 +138,6 @@ _nulljoin = ''.join
_semispacejoin
=
'; '
.
join
_spacejoin
=
' '
.
join
def
_warn_deprecated_setter
(
setter
):
import
warnings
msg
=
(
'The .
%
s setter is deprecated. The attribute will be read-only in '
'future releases. Please use the set() method instead.'
%
setter
)
warnings
.
warn
(
msg
,
DeprecationWarning
,
stacklevel
=
3
)
#
# Define an exception visible to External modules
#
...
...
@@ -303,29 +297,14 @@ class Morsel(dict):
def
key
(
self
):
return
self
.
_key
@key.setter
def
key
(
self
,
key
):
_warn_deprecated_setter
(
'key'
)
self
.
_key
=
key
@property
def
value
(
self
):
return
self
.
_value
@value.setter
def
value
(
self
,
value
):
_warn_deprecated_setter
(
'value'
)
self
.
_value
=
value
@property
def
coded_value
(
self
):
return
self
.
_coded_value
@coded_value.setter
def
coded_value
(
self
,
coded_value
):
_warn_deprecated_setter
(
'coded_value'
)
self
.
_coded_value
=
coded_value
def
__setitem__
(
self
,
K
,
V
):
K
=
K
.
lower
()
if
not
K
in
self
.
_reserved
:
...
...
@@ -366,14 +345,7 @@ class Morsel(dict):
def
isReservedKey
(
self
,
K
):
return
K
.
lower
()
in
self
.
_reserved
def
set
(
self
,
key
,
val
,
coded_val
,
LegalChars
=
_LegalChars
):
if
LegalChars
!=
_LegalChars
:
import
warnings
warnings
.
warn
(
'LegalChars parameter is deprecated, ignored and will '
'be removed in future versions.'
,
DeprecationWarning
,
stacklevel
=
2
)
def
set
(
self
,
key
,
val
,
coded_val
):
if
key
.
lower
()
in
self
.
_reserved
:
raise
CookieError
(
'Attempt to set a reserved key
%
r'
%
(
key
,))
if
not
_is_legal_key
(
key
):
...
...
Lib/test/test_http_cookies.py
Dosyayı görüntüle @
cc283378
...
...
@@ -9,15 +9,6 @@ import warnings
class
CookieTests
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
_warnings_manager
=
check_warnings
()
self
.
_warnings_manager
.
__enter__
()
warnings
.
filterwarnings
(
"ignore"
,
".* class is insecure.*"
,
DeprecationWarning
)
def
tearDown
(
self
):
self
.
_warnings_manager
.
__exit__
(
None
,
None
,
None
)
def
test_basic
(
self
):
cases
=
[
{
'data'
:
'chips=ahoy; vienna=finger'
,
...
...
@@ -256,6 +247,9 @@ class MorselTests(unittest.TestCase):
# Check output and js_output.
M
[
'path'
]
=
'/foo'
# Try a reserved key as well
M
.
set
(
i
,
"
%
s_val"
%
i
,
"
%
s_coded_val"
%
i
)
self
.
assertEqual
(
M
.
key
,
i
)
self
.
assertEqual
(
M
.
value
,
"
%
s_val"
%
i
)
self
.
assertEqual
(
M
.
coded_value
,
"
%
s_coded_val"
%
i
)
self
.
assertEqual
(
M
.
output
(),
"Set-Cookie:
%
s=
%
s; Path=/foo"
%
(
i
,
"
%
s_coded_val"
%
i
))
...
...
@@ -272,16 +266,14 @@ class MorselTests(unittest.TestCase):
self
.
assertRaises
(
cookies
.
CookieError
,
M
.
set
,
i
,
'
%
s_value'
%
i
,
'
%
s_value'
%
i
)
def
test_
deprecation
(
self
):
def
test_
set_properties
(
self
):
morsel
=
cookies
.
Morsel
()
with
self
.
assert
WarnsRegex
(
DeprecationWarning
,
r'\bkey\b'
):
with
self
.
assert
Raises
(
AttributeError
):
morsel
.
key
=
''
with
self
.
assert
WarnsRegex
(
DeprecationWarning
,
r'\bvalue\b'
):
with
self
.
assert
Raises
(
AttributeError
):
morsel
.
value
=
''
with
self
.
assert
WarnsRegex
(
DeprecationWarning
,
r'\bcoded_value\b'
):
with
self
.
assert
Raises
(
AttributeError
):
morsel
.
coded_value
=
''
with
self
.
assertWarnsRegex
(
DeprecationWarning
,
r'\bLegalChars\b'
):
morsel
.
set
(
'key'
,
'value'
,
'coded_value'
,
LegalChars
=
'.*'
)
def
test_eq
(
self
):
base_case
=
(
'key'
,
'value'
,
'"value"'
)
...
...
Misc/NEWS
Dosyayı görüntüle @
cc283378
...
...
@@ -212,6 +212,8 @@ Core and Builtins
Library
-------
-
Issue
#
29192
:
Removed
deprecated
features
in
the
http
.
cookies
module
.
-
Issue
#
29193
:
A
format
string
argument
for
string
.
Formatter
.
format
()
is
now
positional
-
only
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment