summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
Diffstat (limited to 'django/db')
-rw-r--r--django/db/backends/postgresql/base.py7
-rw-r--r--django/db/backends/sqlite3/base.py16
-rw-r--r--django/db/backends/sqlite3/client.py8
-rw-r--r--django/db/migrations/questioner.py1
4 files changed, 7 insertions, 25 deletions
diff --git a/django/db/backends/postgresql/base.py b/django/db/backends/postgresql/base.py
index 126f30b462..ad8d85da29 100644
--- a/django/db/backends/postgresql/base.py
+++ b/django/db/backends/postgresql/base.py
@@ -261,12 +261,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
# For now, it's here so that every use of "threading" is
# also async-compatible.
try:
- if hasattr(asyncio, 'current_task'):
- # Python 3.7 and up
- current_task = asyncio.current_task()
- else:
- # Python 3.6
- current_task = asyncio.Task.current_task()
+ current_task = asyncio.current_task()
except RuntimeError:
current_task = None
# Current task can be none even if the current_task call didn't error
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index f8e1def982..32d767878e 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -25,7 +25,6 @@ from django.utils.asyncio import async_unsafe
from django.utils.dateparse import parse_datetime, parse_time
from django.utils.duration import duration_microseconds
from django.utils.regex_helper import _lazy_re_compile
-from django.utils.version import PY38
from .client import DatabaseClient
from .creation import DatabaseCreation
@@ -180,9 +179,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
"settings.DATABASES is improperly configured. "
"Please supply the NAME value.")
kwargs = {
- # TODO: Remove str() when dropping support for PY36.
- # https://bugs.python.org/issue33496
- 'database': str(settings_dict['NAME']),
+ 'database': settings_dict['NAME'],
'detect_types': Database.PARSE_DECLTYPES | Database.PARSE_COLNAMES,
**settings_dict['OPTIONS'],
}
@@ -206,13 +203,10 @@ class DatabaseWrapper(BaseDatabaseWrapper):
@async_unsafe
def get_new_connection(self, conn_params):
conn = Database.connect(**conn_params)
- if PY38:
- create_deterministic_function = functools.partial(
- conn.create_function,
- deterministic=True,
- )
- else:
- create_deterministic_function = conn.create_function
+ create_deterministic_function = functools.partial(
+ conn.create_function,
+ deterministic=True,
+ )
create_deterministic_function('django_date_extract', 2, _sqlite_datetime_extract)
create_deterministic_function('django_date_trunc', 4, _sqlite_date_trunc)
create_deterministic_function('django_datetime_cast_date', 3, _sqlite_datetime_cast_date)
diff --git a/django/db/backends/sqlite3/client.py b/django/db/backends/sqlite3/client.py
index 59a2fe7f50..69b9568db3 100644
--- a/django/db/backends/sqlite3/client.py
+++ b/django/db/backends/sqlite3/client.py
@@ -6,11 +6,5 @@ class DatabaseClient(BaseDatabaseClient):
@classmethod
def settings_to_cmd_args_env(cls, settings_dict, parameters):
- args = [
- cls.executable_name,
- # TODO: Remove str() when dropping support for PY37. args
- # parameter accepts path-like objects on Windows since Python 3.8.
- str(settings_dict['NAME']),
- *parameters,
- ]
+ args = [cls.executable_name, settings_dict['NAME'], *parameters]
return args, None
diff --git a/django/db/migrations/questioner.py b/django/db/migrations/questioner.py
index 9edb8180ef..216f2af6a1 100644
--- a/django/db/migrations/questioner.py
+++ b/django/db/migrations/questioner.py
@@ -44,7 +44,6 @@ class MigrationQuestioner:
except ImportError:
return self.defaults.get("ask_initial", False)
else:
- # getattr() needed on PY36 and older (replace with attribute access).
if getattr(migrations_module, "__file__", None):
filenames = os.listdir(os.path.dirname(migrations_module.__file__))
elif hasattr(migrations_module, "__path__"):