@@ -288,7 +288,7 @@ def _check_date_fields(year, month, day):
288288 raise ValueError ('day must be in 1..%d' % dim , day )
289289 return year , month , day
290290
291- def _check_time_fields (hour , minute , second , microsecond ):
291+ def _check_time_fields (hour , minute , second , microsecond , fold ):
292292 hour = _check_int_field (hour )
293293 minute = _check_int_field (minute )
294294 second = _check_int_field (second )
@@ -301,7 +301,9 @@ def _check_time_fields(hour, minute, second, microsecond):
301301 raise ValueError ('second must be in 0..59' , second )
302302 if not 0 <= microsecond <= 999999 :
303303 raise ValueError ('microsecond must be in 0..999999' , microsecond )
304- return hour , minute , second , microsecond
304+ if fold not in (0 , 1 ):
305+ raise ValueError ('fold must be either 0 or 1' , fold )
306+ return hour , minute , second , microsecond , fold
305307
306308def _check_tzinfo_arg (tz ):
307309 if tz is not None and not isinstance (tz , tzinfo ):
@@ -1059,8 +1061,8 @@ def __new__(cls, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold
10591061 self .__setstate (hour , minute or None )
10601062 self ._hashcode = - 1
10611063 return self
1062- hour , minute , second , microsecond = _check_time_fields (
1063- hour , minute , second , microsecond )
1064+ hour , minute , second , microsecond , fold = _check_time_fields (
1065+ hour , minute , second , microsecond , fold )
10641066 _check_tzinfo_arg (tzinfo )
10651067 self = object .__new__ (cls )
10661068 self ._hour = hour
@@ -1369,8 +1371,8 @@ def __new__(cls, year, month=None, day=None, hour=0, minute=0, second=0,
13691371 self ._hashcode = - 1
13701372 return self
13711373 year , month , day = _check_date_fields (year , month , day )
1372- hour , minute , second , microsecond = _check_time_fields (
1373- hour , minute , second , microsecond )
1374+ hour , minute , second , microsecond , fold = _check_time_fields (
1375+ hour , minute , second , microsecond , fold )
13741376 _check_tzinfo_arg (tzinfo )
13751377 self = object .__new__ (cls )
13761378 self ._year = year
0 commit comments