瀏覽代碼

Refs #27753 -- Removed django.utils.encoding.force_text() and smart_text() per deprecation timeline.

Mariusz Felisiak 4 年之前
父節點
當前提交
810f037b29
共有 4 個文件被更改,包括 2 次插入56 次删除
  1. 0 18
      django/utils/encoding.py
  2. 0 14
      docs/ref/utils.txt
  3. 2 0
      docs/releases/4.0.txt
  4. 0 24
      tests/utils_tests/test_encoding_deprecations.py

+ 0 - 18
django/utils/encoding.py

@@ -1,11 +1,9 @@
 import codecs
 import datetime
 import locale
-import warnings
 from decimal import Decimal
 from urllib.parse import quote
 
-from django.utils.deprecation import RemovedInDjango40Warning
 from django.utils.functional import Promise
 
 
@@ -99,22 +97,6 @@ def force_bytes(s, encoding='utf-8', strings_only=False, errors='strict'):
     return str(s).encode(encoding, errors)
 
 
-def smart_text(s, encoding='utf-8', strings_only=False, errors='strict'):
-    warnings.warn(
-        'smart_text() is deprecated in favor of smart_str().',
-        RemovedInDjango40Warning, stacklevel=2,
-    )
-    return smart_str(s, encoding, strings_only, errors)
-
-
-def force_text(s, encoding='utf-8', strings_only=False, errors='strict'):
-    warnings.warn(
-        'force_text() is deprecated in favor of force_str().',
-        RemovedInDjango40Warning, stacklevel=2,
-    )
-    return force_str(s, encoding, strings_only, errors)
-
-
 def iri_to_uri(iri):
     """
     Convert an Internationalized Resource Identifier (IRI) portion to a URI

+ 0 - 14
docs/ref/utils.txt

@@ -248,20 +248,6 @@ The functions defined in this module share the following properties:
     If ``strings_only`` is ``True``, don't convert (some) non-string-like
     objects.
 
-.. function:: smart_text(s, encoding='utf-8', strings_only=False, errors='strict')
-
-    .. deprecated:: 3.0
-
-    Alias of :func:`force_str` for backwards compatibility, especially in code
-    that supports Python 2.
-
-.. function:: force_text(s, encoding='utf-8', strings_only=False, errors='strict')
-
-    .. deprecated:: 3.0
-
-    Alias of :func:`force_str` for backwards compatibility, especially in code
-    that supports Python 2.
-
 .. function:: iri_to_uri(iri)
 
     Convert an Internationalized Resource Identifier (IRI) portion to a URI

+ 2 - 0
docs/releases/4.0.txt

@@ -249,6 +249,8 @@ to remove usage of these features.
 * ``django.utils.http.urlquote()``, ``urlquote_plus()``, ``urlunquote()``, and
   ``urlunquote_plus()`` are removed.
 
+* ``django.utils.encoding.force_text()`` and ``smart_text()`` are removed.
+
 See :ref:`deprecated-features-3.1` for details on these changes, including how
 to remove usage of these features.
 

+ 0 - 24
tests/utils_tests/test_encoding_deprecations.py

@@ -1,24 +0,0 @@
-from django.test import SimpleTestCase, ignore_warnings
-from django.utils.deprecation import RemovedInDjango40Warning
-from django.utils.encoding import force_text, smart_text
-from django.utils.functional import SimpleLazyObject
-from django.utils.translation import gettext_lazy
-
-
-@ignore_warnings(category=RemovedInDjango40Warning)
-class TestDeprecatedEncodingUtils(SimpleTestCase):
-
-    def test_force_text(self):
-        s = SimpleLazyObject(lambda: 'x')
-        self.assertIs(type(force_text(s)), str)
-
-    def test_smart_text(self):
-        class Test:
-            def __str__(self):
-                return 'ŠĐĆŽćžšđ'
-
-        lazy_func = gettext_lazy('x')
-        self.assertIs(smart_text(lazy_func), lazy_func)
-        self.assertEqual(smart_text(Test()), '\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111')
-        self.assertEqual(smart_text(1), '1')
-        self.assertEqual(smart_text('foo'), 'foo')