@@ -43,7 +43,7 @@ class TestPDApi(Base):
4343 ]
4444
4545 # these are already deprecated; awaiting removal
46- deprecated_modules : List [str ] = []
46+ deprecated_modules : List [str ] = ["np" , "datetime" ]
4747
4848 # misc
4949 misc = ["IndexSlice" , "NaT" , "NA" ]
@@ -90,15 +90,17 @@ class TestPDApi(Base):
9090 "UInt64Dtype" ,
9191 "NamedAgg" ,
9292 ]
93- if not compat .PY37 :
94- classes .extend (["Panel" , "SparseSeries" , "SparseDataFrame" , "SparseArray" ])
95- deprecated_modules .extend (["np" , "datetime" ])
9693
9794 # these are already deprecated; awaiting removal
9895 deprecated_classes : List [str ] = []
9996
10097 # these should be deprecated in the future
101- deprecated_classes_in_future : List [str ] = []
98+ deprecated_classes_in_future : List [str ] = ["SparseArray" ]
99+
100+ if not compat .PY37 :
101+ classes .extend (["Panel" , "SparseSeries" , "SparseDataFrame" ])
102+ # deprecated_modules.extend(["np", "datetime"])
103+ # deprecated_classes_in_future.extend(["SparseArray"])
102104
103105 # external modules exposed in pandas namespace
104106 modules : List [str ] = []
@@ -201,44 +203,46 @@ class TestPDApi(Base):
201203
202204 def test_api (self ):
203205
204- self .check (
205- pd ,
206+ checkthese = (
206207 self .lib
207208 + self .misc
208209 + self .modules
209- + self .deprecated_modules
210210 + self .classes
211- + self .deprecated_classes
212- + self .deprecated_classes_in_future
213211 + self .funcs
214212 + self .funcs_option
215213 + self .funcs_read
216214 + self .funcs_json
217215 + self .funcs_to
218- + self .deprecated_funcs_in_future
219- + self .deprecated_funcs
220- + self .private_modules ,
221- self .ignored ,
216+ + self .private_modules
222217 )
218+ if not compat .PY37 :
219+ checkthese .extend (
220+ self .deprecated_modules
221+ + self .deprecated_classes
222+ + self .deprecated_classes_in_future
223+ + self .deprecated_funcs_in_future
224+ + self .deprecated_funcs
225+ )
226+ self .check (pd , checkthese , self .ignored )
223227
224228 def test_depr (self ):
225- deprecated = (
229+ deprecated_list = (
226230 self .deprecated_modules
227231 + self .deprecated_classes
228232 + self .deprecated_classes_in_future
229233 + self .deprecated_funcs
230234 + self .deprecated_funcs_in_future
231235 )
232- for depr in deprecated :
236+ for depr in deprecated_list :
233237 with tm .assert_produces_warning (FutureWarning ):
234- if compat . PY37 :
235- getattr ( pd , depr )
236- elif depr == "datetime" :
237- deprecated = getattr ( pd , "__Datetime" )
238- deprecated (). __getattr__ ( dir ( pd . datetime )[ - 1 ])
239- else :
240- deprecated = getattr ( pd , depr )
241- deprecated .__getattr__ (dir (deprecated )[- 1 ])
238+ deprecated = getattr ( pd , depr )
239+ if not compat . PY37 :
240+ if depr == "datetime" :
241+ deprecated . __getattr__ ( dir ( pd . datetime . datetime )[ - 1 ] )
242+ elif depr == "SparseArray" :
243+ deprecated ([])
244+ else :
245+ deprecated .__getattr__ (dir (deprecated )[- 1 ])
242246
243247
244248def test_datetime ():
@@ -249,6 +253,16 @@ def test_datetime():
249253 warnings .simplefilter ("ignore" , FutureWarning )
250254 assert datetime (2015 , 1 , 2 , 0 , 0 ) == pd .datetime (2015 , 1 , 2 , 0 , 0 )
251255
256+ assert isinstance (pd .datetime (2015 , 1 , 2 , 0 , 0 ), pd .datetime )
257+
258+
259+ def test_sparsearray ():
260+ import warnings
261+
262+ with warnings .catch_warnings ():
263+ warnings .simplefilter ("ignore" , FutureWarning )
264+ assert isinstance (pd .array ([1 , 2 , 3 ], dtype = "Sparse" ), pd .SparseArray )
265+
252266
253267def test_np ():
254268 import numpy as np
0 commit comments