summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Pope <nick@nickpope.me.uk>2022-10-12 22:45:00 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-01-05 05:57:50 +0100
commitd7a8ab3513dbee10a04e1f7156457b9c83754bf5 (patch)
tree8a71e0fc5f399db97057ab51c40eed21a8f198e5
parentd2310f6473593d28c14b63a72253408b568e100a (diff)
downloaddjango-d7a8ab3513dbee10a04e1f7156457b9c83754bf5.tar.gz
Optimized imports in django.utils.dateformat.
Avoid extra attribute lookup in specifier methods, etc. by importing classes from datetime directly.
-rw-r--r--django/utils/dateformat.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/django/utils/dateformat.py b/django/utils/dateformat.py
index f96f9176a9..4b733733f3 100644
--- a/django/utils/dateformat.py
+++ b/django/utils/dateformat.py
@@ -3,15 +3,15 @@ PHP date() style date formatting
See https://www.php.net/date for format strings
Usage:
->>> import datetime
->>> d = datetime.datetime.now()
+>>> from datetime import datetime
+>>> d = datetime.now()
>>> df = DateFormat(d)
>>> print(df.format('jS F Y H:i'))
7th October 2003 11:39
>>>
"""
import calendar
-import datetime
+from datetime import date, datetime, time
from email.utils import format_datetime as format_datetime_rfc5322
from django.utils.dates import (
@@ -40,7 +40,7 @@ class Formatter:
pieces = []
for i, piece in enumerate(re_formatchars.split(str(formatstr))):
if i % 2:
- if type(self.data) is datetime.date and hasattr(TimeFormat, piece):
+ if type(self.data) is date and hasattr(TimeFormat, piece):
raise TypeError(
"The format for date objects may not contain "
"time-related format specifiers (found '%s')." % piece
@@ -59,7 +59,7 @@ class TimeFormat(Formatter):
# We only support timezone when formatting datetime objects,
# not date objects (timezone information not appropriate),
# or time objects (against established django policy).
- if isinstance(obj, datetime.datetime):
+ if isinstance(obj, datetime):
if is_naive(obj):
self.timezone = get_default_timezone()
else:
@@ -264,7 +264,7 @@ class DateFormat(TimeFormat):
def r(self):
"RFC 5322 formatted date; e.g. 'Thu, 21 Dec 2000 16:01:07 +0200'"
- if type(self.data) is datetime.date:
+ if type(self.data) is date:
raise TypeError(
"The format for date objects may not contain time-related "
"format specifiers (found 'r')."
@@ -298,8 +298,8 @@ class DateFormat(TimeFormat):
def U(self):
"Seconds since the Unix epoch (January 1 1970 00:00:00 GMT)"
value = self.data
- if not isinstance(value, datetime.datetime):
- value = datetime.datetime.combine(value, datetime.time.min)
+ if not isinstance(value, datetime):
+ value = datetime.combine(value, time.min)
return int(value.timestamp())
def w(self):