@@ -74,11 +74,16 @@ def var():
7474 ],
7575)
7676def test_as_compatible_data_writeable (data ):
77- pd .set_option ("mode.copy_on_write" , True )
77+ # In pandas 3 the mode.copy_on_write option defaults to True, so the option
78+ # setting logic can be removed once our minimum version of pandas is
79+ # greater than or equal to 3.
80+ if not has_pandas_3 :
81+ pd .set_option ("mode.copy_on_write" , True )
7882 # GH8843, ensure writeable arrays for data_vars even with
7983 # pandas copy-on-write mode
8084 assert as_compatible_data (data ).flags .writeable
81- pd .reset_option ("mode.copy_on_write" )
85+ if not has_pandas_3 :
86+ pd .reset_option ("mode.copy_on_write" )
8287
8388
8489class VariableSubclassobjects (NamedArraySubclassobjects , ABC ):
@@ -225,7 +230,7 @@ def test_index_0d_timedelta64(self):
225230 x , np .timedelta64 (td ), np .dtype ("timedelta64[us]" )
226231 )
227232
228- x = self .cls (["x" ], pd .to_timedelta ([td ]))
233+ x = self .cls (["x" ], pd .to_timedelta ([td ]). as_unit ( "ns" ) )
229234 self ._assertIndexedLikeNDArray (x , np .timedelta64 (td ), "timedelta64[ns]" )
230235
231236 def test_index_0d_not_a_time (self ):
@@ -279,7 +284,7 @@ def test_0d_time_data(self):
279284 expected = np .datetime64 ("2000-01-01" , "ns" )
280285 assert x [0 ].values == expected
281286
282- dt64_data = pd .date_range ("1970-01-01" , periods = 3 )
287+ dt64_data = pd .date_range ("1970-01-01" , periods = 3 , unit = "ns" )
283288
284289 @pytest .mark .parametrize (
285290 "values, unit" ,
@@ -311,7 +316,7 @@ def test_datetime64_conversion(self, values, unit):
311316 (td64_data .values .astype ("timedelta64[m]" ), "s" ),
312317 (td64_data .values .astype ("timedelta64[s]" ), "s" ),
313318 (td64_data .values .astype ("timedelta64[ps]" ), "ns" ),
314- (td64_data .to_pytimedelta (), "ns" ),
319+ (td64_data .to_pytimedelta (), "us" if has_pandas_3 else " ns" ),
315320 ],
316321 )
317322 def test_timedelta64_conversion (self , values , unit ):
@@ -1109,8 +1114,8 @@ def test_datetime64_conversion_scalar(self, values, unit):
11091114 (np .timedelta64 (1 , "m" ), "s" ),
11101115 (np .timedelta64 (1 , "D" ), "s" ),
11111116 (np .timedelta64 (1001 , "ps" ), "ns" ),
1112- (pd .Timedelta ("1 day" ), "ns" ),
1113- (timedelta (days = 1 ), "ns" ),
1117+ (pd .Timedelta ("1 day" ). as_unit ( "ns" ) , "ns" ),
1118+ (timedelta (days = 1 ), "us" if has_pandas_3 else " ns" ),
11141119 ],
11151120 )
11161121 def test_timedelta64_conversion_scalar (self , values , unit ):
@@ -1135,7 +1140,8 @@ def test_0d_datetime(self):
11351140 assert v .values == np .datetime64 ("2000-01-01" , expected_unit ) # type: ignore[call-overload]
11361141
11371142 @pytest .mark .parametrize (
1138- "values, unit" , [(pd .to_timedelta ("1s" ), "ns" ), (np .timedelta64 (1 , "s" ), "s" )]
1143+ "values, unit" ,
1144+ [(pd .to_timedelta ("1s" ).as_unit ("ns" ), "ns" ), (np .timedelta64 (1 , "s" ), "s" )],
11391145 )
11401146 def test_0d_timedelta (self , values , unit ):
11411147 # todo: check, if this test is OK
@@ -3158,7 +3164,7 @@ def test_from_pint_wrapping_dask(self, Var):
31583164 (np .datetime64 ("2000-01-01" , "s" ), "s" ),
31593165 (np .array ([np .datetime64 ("2000-01-01" , "ns" )]), "ns" ),
31603166 (np .array ([np .datetime64 ("2000-01-01" , "s" )]), "s" ),
3161- (pd .date_range ("2000" , periods = 1 ), "ns" ),
3167+ (pd .date_range ("2000" , periods = 1 , unit = "ns" ), "ns" ),
31623168 (
31633169 datetime (2000 , 1 , 1 ),
31643170 "us" if has_pandas_3 else "ns" ,
@@ -3167,10 +3173,17 @@ def test_from_pint_wrapping_dask(self, Var):
31673173 np .array ([datetime (2000 , 1 , 1 )]),
31683174 "us" if has_pandas_3 else "ns" ,
31693175 ),
3170- (pd .date_range ("2000" , periods = 1 , tz = pytz .timezone ("America/New_York" )), "ns" ),
3176+ (
3177+ pd .date_range (
3178+ "2000" , periods = 1 , tz = pytz .timezone ("America/New_York" ), unit = "ns"
3179+ ),
3180+ "ns" ,
3181+ ),
31713182 (
31723183 pd .Series (
3173- pd .date_range ("2000" , periods = 1 , tz = pytz .timezone ("America/New_York" ))
3184+ pd .date_range (
3185+ "2000" , periods = 1 , tz = pytz .timezone ("America/New_York" ), unit = "ns"
3186+ )
31743187 ),
31753188 "ns" ,
31763189 ),
@@ -3245,8 +3258,8 @@ def test_pandas_two_only_datetime_conversion_warnings(
32453258 (np .array ([np .timedelta64 (10 , "ns" )]), "ns" ),
32463259 (np .array ([np .timedelta64 (10 , "s" )]), "s" ),
32473260 (pd .timedelta_range ("1" , periods = 1 ), "ns" ),
3248- (timedelta (days = 1 ), "ns" ),
3249- (np .array ([timedelta (days = 1 )]), "ns" ),
3261+ (timedelta (days = 1 ), "us" if has_pandas_3 else " ns" ),
3262+ (np .array ([timedelta (days = 1 )]), "us" if has_pandas_3 else " ns" ),
32503263 (pd .timedelta_range ("1" , periods = 1 ).astype ("timedelta64[s]" ), "s" ),
32513264 ],
32523265 ids = lambda x : f"{ x } " ,
0 commit comments