Skip to content

Commit

Permalink
Stopped using default adapters/converters on SQLite backend.
Browse files Browse the repository at this point in the history
Default adapters/converters were deprecated in Python 3.12,
see python/cpython#90016.
  • Loading branch information
felixxm committed Jul 4, 2022
1 parent 5eb6a2b commit fdb95fd
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion django/db/backends/sqlite3/base.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
"""
SQLite backend for the sqlite3 module in the standard library.
"""
import datetime
import decimal
import warnings
from itertools import chain
Expand All @@ -10,7 +11,7 @@
from django.db import IntegrityError
from django.db.backends.base.base import BaseDatabaseWrapper
from django.utils.asyncio import async_unsafe
from django.utils.dateparse import parse_datetime, parse_time
from django.utils.dateparse import parse_date, parse_datetime, parse_time
from django.utils.regex_helper import _lazy_re_compile

from ._functions import register as register_functions
Expand All @@ -29,12 +30,23 @@ def decoder(conv_func):
return lambda s: conv_func(s.decode())


def adapt_date(val):
return val.isoformat()


def adapt_datetime(val):
return val.isoformat(" ")


Database.register_converter("bool", b"1".__eq__)
Database.register_converter("date", decoder(parse_date))
Database.register_converter("time", decoder(parse_time))
Database.register_converter("datetime", decoder(parse_datetime))
Database.register_converter("timestamp", decoder(parse_datetime))

Database.register_adapter(decimal.Decimal, str)
Database.register_adapter(datetime.date, adapt_date)
Database.register_adapter(datetime.datetime, adapt_datetime)


class DatabaseWrapper(BaseDatabaseWrapper):
Expand Down

0 comments on commit fdb95fd

Please sign in to comment.