mirror of https://github.com/django/django.git
Refs #29546 -- Removed django.utils.timezone.FixedOffset per deprecation timeline.
This commit is contained in:
parent
3d716467a9
commit
cb2be9d5d5
|
@ -3,7 +3,6 @@ Timezone-related classes and functions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import functools
|
import functools
|
||||||
import warnings
|
|
||||||
from contextlib import ContextDecorator
|
from contextlib import ContextDecorator
|
||||||
from datetime import datetime, timedelta, timezone, tzinfo
|
from datetime import datetime, timedelta, timezone, tzinfo
|
||||||
|
|
||||||
|
@ -11,7 +10,6 @@ import pytz
|
||||||
from asgiref.local import Local
|
from asgiref.local import Local
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.deprecation import RemovedInDjango31Warning
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'utc', 'get_fixed_timezone',
|
'utc', 'get_fixed_timezone',
|
||||||
|
@ -23,40 +21,6 @@ __all__ = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
# UTC and local time zones
|
|
||||||
|
|
||||||
ZERO = timedelta(0)
|
|
||||||
|
|
||||||
|
|
||||||
class FixedOffset(tzinfo):
|
|
||||||
"""
|
|
||||||
Fixed offset in minutes east from UTC. Taken from Python's docs.
|
|
||||||
|
|
||||||
Kept as close as possible to the reference version. __init__ was changed
|
|
||||||
to make its arguments optional, according to Python's requirement that
|
|
||||||
tzinfo subclasses can be instantiated without arguments.
|
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, offset=None, name=None):
|
|
||||||
warnings.warn(
|
|
||||||
'FixedOffset is deprecated in favor of datetime.timezone',
|
|
||||||
RemovedInDjango31Warning, stacklevel=2,
|
|
||||||
)
|
|
||||||
if offset is not None:
|
|
||||||
self.__offset = timedelta(minutes=offset)
|
|
||||||
if name is not None:
|
|
||||||
self.__name = name
|
|
||||||
|
|
||||||
def utcoffset(self, dt):
|
|
||||||
return self.__offset
|
|
||||||
|
|
||||||
def tzname(self, dt):
|
|
||||||
return self.__name
|
|
||||||
|
|
||||||
def dst(self, dt):
|
|
||||||
return ZERO
|
|
||||||
|
|
||||||
|
|
||||||
# UTC time zone as a tzinfo instance.
|
# UTC time zone as a tzinfo instance.
|
||||||
utc = pytz.utc
|
utc = pytz.utc
|
||||||
|
|
||||||
|
|
|
@ -835,15 +835,6 @@ appropriate entities.
|
||||||
|
|
||||||
:class:`~datetime.tzinfo` instance that represents UTC.
|
:class:`~datetime.tzinfo` instance that represents UTC.
|
||||||
|
|
||||||
.. class:: FixedOffset(offset=None, name=None)
|
|
||||||
|
|
||||||
A :class:`~datetime.tzinfo` subclass modeling a fixed offset from UTC.
|
|
||||||
``offset`` is an integer number of minutes east of UTC.
|
|
||||||
|
|
||||||
.. deprecated:: 2.2
|
|
||||||
|
|
||||||
Use :class:`datetime.timezone` instead.
|
|
||||||
|
|
||||||
.. function:: get_fixed_timezone(offset)
|
.. function:: get_fixed_timezone(offset)
|
||||||
|
|
||||||
Returns a :class:`~datetime.tzinfo` instance that represents a time zone
|
Returns a :class:`~datetime.tzinfo` instance that represents a time zone
|
||||||
|
|
|
@ -230,6 +230,8 @@ in Django 3.1.
|
||||||
See :ref:`deprecated-features-2.2` for details on these changes, including how
|
See :ref:`deprecated-features-2.2` for details on these changes, including how
|
||||||
to remove usage of these features.
|
to remove usage of these features.
|
||||||
|
|
||||||
|
* ``django.utils.timezone.FixedOffset`` is removed.
|
||||||
|
|
||||||
* ``django.contrib.postgres.fields.FloatRangeField`` and
|
* ``django.contrib.postgres.fields.FloatRangeField`` and
|
||||||
``django.contrib.postgres.forms.FloatRangeField`` are removed.
|
``django.contrib.postgres.forms.FloatRangeField`` are removed.
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,10 @@
|
||||||
import datetime
|
import datetime
|
||||||
import pickle
|
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
import pytz
|
import pytz
|
||||||
|
|
||||||
from django.test import SimpleTestCase, ignore_warnings, override_settings
|
from django.test import SimpleTestCase, override_settings
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.utils.deprecation import RemovedInDjango31Warning
|
|
||||||
|
|
||||||
CET = pytz.timezone("Europe/Paris")
|
CET = pytz.timezone("Europe/Paris")
|
||||||
EAT = timezone.get_fixed_timezone(180) # Africa/Nairobi
|
EAT = timezone.get_fixed_timezone(180) # Africa/Nairobi
|
||||||
|
@ -202,24 +200,3 @@ class TimezoneTests(SimpleTestCase):
|
||||||
def test_fixedoffset_negative_timedelta(self):
|
def test_fixedoffset_negative_timedelta(self):
|
||||||
delta = datetime.timedelta(hours=-2)
|
delta = datetime.timedelta(hours=-2)
|
||||||
self.assertEqual(timezone.get_fixed_timezone(delta).utcoffset(None), delta)
|
self.assertEqual(timezone.get_fixed_timezone(delta).utcoffset(None), delta)
|
||||||
|
|
||||||
@ignore_warnings(category=RemovedInDjango31Warning)
|
|
||||||
def test_fixedoffset_pickle(self):
|
|
||||||
self.assertEqual(pickle.loads(pickle.dumps(timezone.FixedOffset(0, 'tzname'))).tzname(''), 'tzname')
|
|
||||||
|
|
||||||
def test_fixedoffset_deprecation(self):
|
|
||||||
msg = 'FixedOffset is deprecated in favor of datetime.timezone'
|
|
||||||
with self.assertWarnsMessage(RemovedInDjango31Warning, msg) as cm:
|
|
||||||
timezone.FixedOffset()
|
|
||||||
self.assertEqual(cm.filename, __file__)
|
|
||||||
|
|
||||||
@ignore_warnings(category=RemovedInDjango31Warning)
|
|
||||||
def test_fixedoffset_utcoffset(self):
|
|
||||||
delta = datetime.timedelta(minutes=1)
|
|
||||||
self.assertEqual(timezone.FixedOffset(1).utcoffset(None), delta)
|
|
||||||
|
|
||||||
@ignore_warnings(category=RemovedInDjango31Warning)
|
|
||||||
def test_fixedoffset_dst(self):
|
|
||||||
ZERO = datetime.timedelta(minutes=0)
|
|
||||||
delta = datetime.timedelta(hours=0)
|
|
||||||
self.assertEqual(timezone.FixedOffset().dst(delta), ZERO)
|
|
||||||
|
|
Loading…
Reference in New Issue