@@ -105,7 +105,7 @@ def _normalize(
105105 # We set the fold attribute for later
106106 if dst_rule == POST_TRANSITION :
107107 fold = 1
108- else :
108+ elif transition . previous is not None :
109109 transition = transition .previous
110110
111111 if transition .is_ambiguous (sec ):
@@ -149,7 +149,7 @@ def _convert(self, dt): # type: (datetime) -> datetime
149149 transition = dt .tzinfo ._lookup_transition (stamp )
150150 offset = transition .ttype .offset
151151
152- if stamp < transition .local :
152+ if stamp < transition .local and transition . previous is not None :
153153 if (
154154 transition .previous .is_ambiguous (stamp )
155155 and getattr (dt , "fold" , 1 ) == 0
@@ -161,7 +161,7 @@ def _convert(self, dt): # type: (datetime) -> datetime
161161 stamp -= offset
162162
163163 transition = self ._lookup_transition (stamp , is_utc = True )
164- if stamp < transition .at :
164+ if stamp < transition .at and transition . previous is not None :
165165 transition = transition .previous
166166
167167 offset = transition .ttype .offset
@@ -254,7 +254,7 @@ def _get_transition(self, dt): # type: (datetime) -> Transition
254254
255255 transition = self ._lookup_transition (stamp )
256256
257- if stamp < transition .local :
257+ if stamp < transition .local and transition . previous is not None :
258258 fold = getattr (dt , "fold" , 1 )
259259 if transition .is_ambiguous (stamp ):
260260 if fold == 0 :
@@ -270,7 +270,7 @@ def fromutc(self, dt): # type: (datetime) -> datetime
270270 stamp = timestamp (dt )
271271
272272 transition = self ._lookup_transition (stamp , is_utc = True )
273- if stamp < transition .at :
273+ if stamp < transition .at and transition . previous is not None :
274274 transition = transition .previous
275275
276276 stamp += transition .ttype .offset
0 commit comments