2
0
Эх сурвалжийг харах

Refs #32365 -- Removed django.utils.timezone.utc per deprecation timeline.

Mariusz Felisiak 2 жил өмнө
parent
commit
d6816bff73

+ 1 - 26
django/utils/timezone.py

@@ -3,7 +3,6 @@ Timezone-related classes and functions.
 """
 
 import functools
-import warnings
 
 try:
     import zoneinfo
@@ -16,10 +15,8 @@ from datetime import datetime, timedelta, timezone, tzinfo
 from asgiref.local import Local
 
 from django.conf import settings
-from django.utils.deprecation import RemovedInDjango50Warning
 
-__all__ = [  # noqa for utc RemovedInDjango50Warning.
-    "utc",
+__all__ = [
     "get_fixed_timezone",
     "get_default_timezone",
     "get_default_timezone_name",
@@ -38,20 +35,6 @@ __all__ = [  # noqa for utc RemovedInDjango50Warning.
 ]
 
 
-def __getattr__(name):
-    if name != "utc":
-        raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
-
-    warnings.warn(
-        "The django.utils.timezone.utc alias is deprecated. "
-        "Please update your code to use datetime.timezone.utc instead.",
-        RemovedInDjango50Warning,
-        stacklevel=2,
-    )
-
-    return timezone.utc
-
-
 def get_fixed_timezone(offset):
     """Return a tzinfo instance with a fixed offset from UTC."""
     if isinstance(offset, timedelta):
@@ -279,11 +262,3 @@ def make_naive(value, timezone=None):
 
 def _datetime_ambiguous_or_imaginary(dt, tz):
     return tz.utcoffset(dt.replace(fold=not dt.fold)) != tz.utcoffset(dt)
-
-
-# RemovedInDjango50Warning.
-_DIR = dir()
-
-
-def __dir__():
-    return sorted([*_DIR, "utc"])

+ 0 - 9
docs/ref/utils.txt

@@ -862,15 +862,6 @@ appropriate entities.
 .. module:: django.utils.timezone
     :synopsis: Timezone support.
 
-.. data:: utc
-
-    :class:`~datetime.tzinfo` instance that represents UTC.
-
-    .. deprecated:: 4.1
-
-        This is an alias to :attr:`datetime.timezone.utc`. Use
-        :attr:`datetime.timezone.utc` directly.
-
 .. function:: get_fixed_timezone(offset)
 
     Returns a :class:`~datetime.tzinfo` instance that represents a time zone

+ 1 - 1
docs/releases/4.0.txt

@@ -590,7 +590,7 @@ Miscellaneous
   :ref:`Localization section <use_l10n_deprecation>` above for more details.
 
 * As part of the :ref:`move to zoneinfo <whats-new-4.0>`,
-  :attr:`django.utils.timezone.utc` is changed to alias
+  ``django.utils.timezone.utc`` is changed to alias
   :attr:`datetime.timezone.utc`.
 
 * The minimum supported version of ``asgiref`` is increased from 3.3.2 to

+ 2 - 2
docs/releases/4.1.txt

@@ -695,8 +695,8 @@ Miscellaneous
   :meth:`.RemoteUserBackend.configure_user`. Support  for ``RemoteUserBackend``
   subclasses that do not accept this argument is deprecated.
 
-* The :data:`django.utils.timezone.utc` alias to :attr:`datetime.timezone.utc`
-  is deprecated. Use :attr:`datetime.timezone.utc` directly.
+* The ``django.utils.timezone.utc`` alias to :attr:`datetime.timezone.utc` is
+  deprecated. Use :attr:`datetime.timezone.utc` directly.
 
 * Passing a response object and a form/formset name to
   ``SimpleTestCase.assertFormError()`` and ``assertFormsetError()`` is

+ 3 - 0
docs/releases/5.0.txt

@@ -331,3 +331,6 @@ to remove usage of these features.
 * Support for logging out via ``GET`` requests in the
   ``django.contrib.auth.views.LogoutView`` and
   ``django.contrib.auth.views.logout_then_login()`` is removed.
+
+* The ``django.utils.timezone.utc`` alias to ``datetime.timezone.utc`` is
+  removed.

+ 8 - 15
tests/migrations/test_writer.py

@@ -24,9 +24,8 @@ from django.core.validators import EmailValidator, RegexValidator
 from django.db import migrations, models
 from django.db.migrations.serializer import BaseSerializer
 from django.db.migrations.writer import MigrationWriter, OperationWriter
-from django.test import SimpleTestCase, ignore_warnings
+from django.test import SimpleTestCase
 from django.utils.deconstruct import deconstructible
-from django.utils.deprecation import RemovedInDjango50Warning
 from django.utils.functional import SimpleLazyObject
 from django.utils.timezone import get_default_timezone, get_fixed_timezone
 from django.utils.translation import gettext_lazy as _
@@ -568,19 +567,13 @@ class WriterTests(SimpleTestCase):
             datetime.datetime(2014, 1, 1, 1, 1),
             ("datetime.datetime(2014, 1, 1, 1, 1)", {"import datetime"}),
         )
-        with ignore_warnings(category=RemovedInDjango50Warning):
-            from django.utils.timezone import utc
-        for tzinfo in (utc, datetime.timezone.utc):
-            with self.subTest(tzinfo=tzinfo):
-                self.assertSerializedResultEqual(
-                    datetime.datetime(2012, 1, 1, 1, 1, tzinfo=tzinfo),
-                    (
-                        "datetime.datetime"
-                        "(2012, 1, 1, 1, 1, tzinfo=datetime.timezone.utc)",
-                        {"import datetime"},
-                    ),
-                )
-
+        self.assertSerializedResultEqual(
+            datetime.datetime(2012, 1, 1, 1, 1, tzinfo=datetime.timezone.utc),
+            (
+                "datetime.datetime(2012, 1, 1, 1, 1, tzinfo=datetime.timezone.utc)",
+                {"import datetime"},
+            ),
+        )
         self.assertSerializedResultEqual(
             datetime.datetime(
                 2012, 1, 1, 2, 1, tzinfo=zoneinfo.ZoneInfo("Europe/Paris")

+ 0 - 14
tests/timezones/tests.py

@@ -33,7 +33,6 @@ from django.test import (
 from django.test.utils import requires_tz_support
 from django.urls import reverse
 from django.utils import timezone, translation
-from django.utils.deprecation import RemovedInDjango50Warning
 from django.utils.timezone import timedelta
 
 from .forms import (
@@ -74,19 +73,6 @@ EAT = timezone.get_fixed_timezone(180)  # Africa/Nairobi
 ICT = timezone.get_fixed_timezone(420)  # Asia/Bangkok
 
 
-class UTCAliasTests(SimpleTestCase):
-    def test_alias_deprecation_warning(self):
-        msg = (
-            "The django.utils.timezone.utc alias is deprecated. "
-            "Please update your code to use datetime.timezone.utc instead."
-        )
-        with self.assertRaisesMessage(RemovedInDjango50Warning, msg):
-            timezone.utc
-
-    def test_timezone_module_dir_includes_utc(self):
-        self.assertIn("utc", dir(timezone))
-
-
 @contextmanager
 def override_database_connection_timezone(timezone):
     try: