@@ -141,13 +141,18 @@ def dtype(self):
141
141
# ----------------------------------------------------------------
142
142
# Constructors
143
143
144
- def __init__ (self , values , dtype = TD64NS_DTYPE , freq = None , copy = False ):
144
+ def __init__ (self , values , dtype = TD64NS_DTYPE , freq = lib . no_default , copy = False ):
145
145
values = extract_array (values )
146
146
147
147
inferred_freq = getattr (values , "_freq" , None )
148
+ explicit_none = freq is None
149
+ freq = freq if freq is not lib .no_default else None
148
150
149
151
if isinstance (values , type (self )):
150
- if freq is None :
152
+ if explicit_none :
153
+ # dont inherit from values
154
+ pass
155
+ elif freq is None :
151
156
freq = values .freq
152
157
elif freq and values .freq :
153
158
freq = to_offset (freq )
@@ -206,13 +211,21 @@ def _simple_new(cls, values, freq=None, dtype=TD64NS_DTYPE):
206
211
return result
207
212
208
213
@classmethod
209
- def _from_sequence (cls , data , dtype = TD64NS_DTYPE , copy = False , freq = None , unit = None ):
214
+ def _from_sequence (
215
+ cls , data , dtype = TD64NS_DTYPE , copy = False , freq = lib .no_default , unit = None
216
+ ):
210
217
if dtype :
211
218
_validate_td64_dtype (dtype )
219
+
220
+ explicit_none = freq is None
221
+ freq = freq if freq is not lib .no_default else None
222
+
212
223
freq , freq_infer = dtl .maybe_infer_freq (freq )
213
224
214
225
data , inferred_freq = sequence_to_td64ns (data , copy = copy , unit = unit )
215
226
freq , freq_infer = dtl .validate_inferred_freq (freq , inferred_freq , freq_infer )
227
+ if explicit_none :
228
+ freq = None
216
229
217
230
result = cls ._simple_new (data , freq = freq )
218
231
0 commit comments