Skip to content

Commit 51b5e17

Browse files
committed
Make datetime subclass repr consistent both implementations
1 parent fb17f41 commit 51b5e17

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

Lib/_pydatetime.py

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
__all__ = ("date", "datetime", "time", "timedelta", "timezone", "tzinfo",
44
"MINYEAR", "MAXYEAR", "UTC")
55

6+
__name__ = "datetime"
7+
68

79
import time as _time
810
import math as _math
@@ -14,10 +16,10 @@ def _cmp(x, y):
1416

1517
def _get_class_module(self):
1618
module_name = self.__class__.__module__
17-
if module_name == '_pydatetime':
18-
return 'datetime'
19+
if module_name == 'datetime':
20+
return 'datetime.'
1921
else:
20-
return module_name
22+
return ''
2123

2224
MINYEAR = 1
2325
MAXYEAR = 9999
@@ -767,9 +769,9 @@ def __repr__(self):
767769
args.append("microseconds=%d" % self._microseconds)
768770
if not args:
769771
args.append('0')
770-
return "%s.%s(%s)" % (_get_class_module(self),
771-
self.__class__.__qualname__,
772-
', '.join(args))
772+
return "%s%s(%s)" % (_get_class_module(self),
773+
self.__class__.__qualname__,
774+
', '.join(args))
773775

774776
def __str__(self):
775777
mm, ss = divmod(self._seconds, 60)
@@ -1082,11 +1084,11 @@ def __repr__(self):
10821084
>>> repr(d)
10831085
'datetime.date(2010, 1, 1)'
10841086
"""
1085-
return "%s.%s(%d, %d, %d)" % (_get_class_module(self),
1086-
self.__class__.__qualname__,
1087-
self._year,
1088-
self._month,
1089-
self._day)
1087+
return "%s%s(%d, %d, %d)" % (_get_class_module(self),
1088+
self.__class__.__qualname__,
1089+
self._year,
1090+
self._month,
1091+
self._day)
10901092
# XXX These shouldn't depend on time.localtime(), because that
10911093
# clips the usable dates to [1970 .. 2038). At least ctime() is
10921094
# easily done without using strftime() -- that's better too because
@@ -1586,7 +1588,7 @@ def __repr__(self):
15861588
s = ", %d" % self._second
15871589
else:
15881590
s = ""
1589-
s= "%s.%s(%d, %d%s)" % (_get_class_module(self),
1591+
s = "%s%s(%d, %d%s)" % (_get_class_module(self),
15901592
self.__class__.__qualname__,
15911593
self._hour, self._minute, s)
15921594
if self._tzinfo is not None:
@@ -2162,9 +2164,9 @@ def __repr__(self):
21622164
del L[-1]
21632165
if L[-1] == 0:
21642166
del L[-1]
2165-
s = "%s.%s(%s)" % (_get_class_module(self),
2166-
self.__class__.__qualname__,
2167-
", ".join(map(str, L)))
2167+
s = "%s%s(%s)" % (_get_class_module(self),
2168+
self.__class__.__qualname__,
2169+
", ".join(map(str, L)))
21682170
if self._tzinfo is not None:
21692171
assert s[-1:] == ")"
21702172
s = s[:-1] + ", tzinfo=%r" % self._tzinfo + ")"
@@ -2461,12 +2463,12 @@ def __repr__(self):
24612463
if self is self.utc:
24622464
return 'datetime.timezone.utc'
24632465
if self._name is None:
2464-
return "%s.%s(%r)" % (_get_class_module(self),
2465-
self.__class__.__qualname__,
2466-
self._offset)
2467-
return "%s.%s(%r, %r)" % (_get_class_module(self),
2468-
self.__class__.__qualname__,
2469-
self._offset, self._name)
2466+
return "%s%s(%r)" % (_get_class_module(self),
2467+
self.__class__.__qualname__,
2468+
self._offset)
2469+
return "%s%s(%r, %r)" % (_get_class_module(self),
2470+
self.__class__.__qualname__,
2471+
self._offset, self._name)
24702472

24712473
def __str__(self):
24722474
return self.tzname(None)

0 commit comments

Comments
 (0)