diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-09 09:03:38 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-17 11:49:15 +0100 |
| commit | e6f82438d4e3750e8d299bfd79dac98eebe9f1e0 (patch) | |
| tree | 4ee0cbf2c0be9822416aa3d65105f35a9784fd94 /django/db | |
| parent | 8d98f99a4ab5de6f2c730399f53eba8bf6bea470 (diff) | |
Refs #32365 -- Removed support for pytz timezones per deprecation timeline.
Diffstat (limited to 'django/db')
| -rw-r--r-- | django/db/backends/base/base.py | 11 | ||||
| -rw-r--r-- | django/db/backends/sqlite3/_functions.py | 10 |
2 files changed, 8 insertions, 13 deletions
diff --git a/django/db/backends/base/base.py b/django/db/backends/base/base.py index 3b845ec9b3..5f2e7bcd4d 100644 --- a/django/db/backends/base/base.py +++ b/django/db/backends/base/base.py @@ -32,15 +32,6 @@ RAN_DB_VERSION_CHECK = set() logger = logging.getLogger("django.db.backends.base") -# RemovedInDjango50Warning -def timezone_constructor(tzname): - if settings.USE_DEPRECATED_PYTZ: - import pytz - - return pytz.timezone(tzname) - return zoneinfo.ZoneInfo(tzname) - - class BaseDatabaseWrapper: """Represent a database connection.""" @@ -166,7 +157,7 @@ class BaseDatabaseWrapper: elif self.settings_dict["TIME_ZONE"] is None: return datetime.timezone.utc else: - return timezone_constructor(self.settings_dict["TIME_ZONE"]) + return zoneinfo.ZoneInfo(self.settings_dict["TIME_ZONE"]) @cached_property def timezone_name(self): diff --git a/django/db/backends/sqlite3/_functions.py b/django/db/backends/sqlite3/_functions.py index b590111ec5..c60549f8af 100644 --- a/django/db/backends/sqlite3/_functions.py +++ b/django/db/backends/sqlite3/_functions.py @@ -26,7 +26,6 @@ from math import ( ) from re import search as re_search -from django.db.backends.base.base import timezone_constructor from django.db.backends.utils import ( split_tzname_delta, typecast_time, @@ -36,6 +35,11 @@ from django.utils import timezone from django.utils.crypto import md5 from django.utils.duration import duration_microseconds +try: + import zoneinfo +except ImportError: + from backports import zoneinfo + def register(connection): create_deterministic_function = functools.partial( @@ -111,14 +115,14 @@ def _sqlite_datetime_parse(dt, tzname=None, conn_tzname=None): except (TypeError, ValueError): return None if conn_tzname: - dt = dt.replace(tzinfo=timezone_constructor(conn_tzname)) + dt = dt.replace(tzinfo=zoneinfo.ZoneInfo(conn_tzname)) if tzname is not None and tzname != conn_tzname: tzname, sign, offset = split_tzname_delta(tzname) if offset: hours, minutes = offset.split(":") offset_delta = timedelta(hours=int(hours), minutes=int(minutes)) dt += offset_delta if sign == "+" else -offset_delta - dt = timezone.localtime(dt, timezone_constructor(tzname)) + dt = timezone.localtime(dt, zoneinfo.ZoneInfo(tzname)) return dt |
