diff options
author | Carlton Gibson <carlton.gibson@noumenal.es> | 2021-09-09 12:56:54 +0200 |
---|---|---|
committer | Carlton Gibson <carlton.gibson@noumenal.es> | 2021-09-09 12:56:54 +0200 |
commit | 84cb8fd4394c7080c9294974f1c4b0f733c0cdf0 (patch) | |
tree | bc6040351e34cb7e4ed826f259721be7c4d9724a /django | |
parent | dad1f9d3fd950e0627d2eeef6e37a2fa34931ba2 (diff) | |
download | django-make-zoneinfo-default-timezone-implementation.tar.gz |
Deprecation of is_dst params.make-zoneinfo-default-timezone-implementation
Release notes and deprecation.txt pending.
Diffstat (limited to 'django')
-rw-r--r-- | django/contrib/admin/templatetags/admin_list.py | 3 | ||||
-rw-r--r-- | django/db/models/functions/datetime.py | 4 | ||||
-rw-r--r-- | django/db/models/query.py | 2 | ||||
-rw-r--r-- | django/utils/timezone.py | 15 |
4 files changed, 19 insertions, 5 deletions
diff --git a/django/contrib/admin/templatetags/admin_list.py b/django/contrib/admin/templatetags/admin_list.py index b82440e9f8..bc74a2a3d6 100644 --- a/django/contrib/admin/templatetags/admin_list.py +++ b/django/contrib/admin/templatetags/admin_list.py @@ -1,5 +1,6 @@ import datetime +from django.conf import settings from django.contrib.admin.templatetags.admin_urls import add_preserved_filters from django.contrib.admin.utils import ( display_for_field, display_for_value, get_fields_from_path, @@ -328,7 +329,7 @@ def date_hierarchy(cl): field = get_fields_from_path(cl.model, field_name)[-1] if isinstance(field, models.DateTimeField): dates_or_datetimes = 'datetimes' - qs_kwargs = {'is_dst': True} + qs_kwargs = {'is_dst': True} if settings.USE_DEPRECATED_PYTZ else {} else: dates_or_datetimes = 'dates' qs_kwargs = {} diff --git a/django/db/models/functions/datetime.py b/django/db/models/functions/datetime.py index 20161bef38..28ca952072 100644 --- a/django/db/models/functions/datetime.py +++ b/django/db/models/functions/datetime.py @@ -188,7 +188,7 @@ class TruncBase(TimezoneMixin, Transform): kind = None tzinfo = None - def __init__(self, expression, output_field=None, tzinfo=None, is_dst=None, **extra): + def __init__(self, expression, output_field=None, tzinfo=None, is_dst=timezone.IS_DST_PASSED, **extra): self.tzinfo = tzinfo self.is_dst = is_dst super().__init__(expression, output_field=output_field, **extra) @@ -264,7 +264,7 @@ class TruncBase(TimezoneMixin, Transform): class Trunc(TruncBase): - def __init__(self, expression, kind, output_field=None, tzinfo=None, is_dst=None, **extra): + def __init__(self, expression, kind, output_field=None, tzinfo=None, is_dst=timezone.IS_DST_PASSED, **extra): self.kind = kind super().__init__( expression, output_field=output_field, tzinfo=tzinfo, diff --git a/django/db/models/query.py b/django/db/models/query.py index 88cfc3de38..9721d95e0b 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -916,7 +916,7 @@ class QuerySet: 'datefield', flat=True ).distinct().filter(plain_field__isnull=False).order_by(('-' if order == 'DESC' else '') + 'datefield') - def datetimes(self, field_name, kind, order='ASC', tzinfo=None, is_dst=None): + def datetimes(self, field_name, kind, order='ASC', tzinfo=None, is_dst=timezone.IS_DST_PASSED): """ Return a list of datetime objects representing all available datetimes for the given field_name, scoped to 'kind'. diff --git a/django/utils/timezone.py b/django/utils/timezone.py index 940095868d..0c95416400 100644 --- a/django/utils/timezone.py +++ b/django/utils/timezone.py @@ -3,6 +3,7 @@ Timezone-related classes and functions. """ import functools +import warnings try: import zoneinfo @@ -15,6 +16,7 @@ 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: F822 RemovedInDjango50Warning 'utc', 'get_fixed_timezone', @@ -25,6 +27,9 @@ __all__ = [ # noqa: F822 RemovedInDjango50Warning 'is_aware', 'is_naive', 'make_aware', 'make_naive', ] +# RemovedInDjango50Warning +IS_DST_PASSED = object() + # RemovedInDjango50Warning # This code has two purposes. @@ -248,8 +253,16 @@ def is_naive(value): return value.utcoffset() is None -def make_aware(value, timezone=None, is_dst=None): +def make_aware(value, timezone=None, is_dst=IS_DST_PASSED): """Make a naive datetime.datetime in a given time zone aware.""" + if is_dst is IS_DST_PASSED: + is_dst = None + else: + warnings.warn( + 'The is_dst argument to make_aware() is deprecated as it has no ' + 'effect with zoneinfo time zones.', + RemovedInDjango50Warning + ) if timezone is None: timezone = get_current_timezone() if _is_pytz_zone(timezone): |