Description
Pandas version checks
-
I have checked that this issue has not already been reported.
-
I have confirmed this bug exists on the latest version of pandas.
-
I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
import warnings
import pandas as pd
warnings.simplefilter('always', DeprecationWarning)
class MySeries(pd.Series):
@property
def _constructor(self):
return MySeries
series = MySeries({'A': 1, 'B': 2, 'C': 3})
series.loc[['A', 'B']]
Issue Description
The above code will print
DeprecationWarning: Passing a SingleBlockManager to MySeries is deprecated and will raise in a future version. Use public APIs instead.
because Series._constructor_from_mgr
calls self._constructor(mgr)
if self._constructor
is not a Series without catching that warning.
Lines 665 to 673 in 7281475
The warning is not very helpful in this case, because it recommends to use public APIs, but only public APIs are used. There's also no way to fix it except for just filtering it out.
Expected Behavior
Pandas should not raise this warning when it is actually caused by an internal operation that cannot be changed by a user.
Installed Versions
INSTALLED VERSIONS
commit : 7281475
python : 3.12.1.final.0
python-bits : 64
OS : Windows
OS-release : 10
Version : 10.0.19044
machine : AMD64
processor : AMD64 Family 23 Model 113 Stepping 0, AuthenticAMD
byteorder : little
LC_ALL : None
LANG : None
LOCALE : English_United Kingdom.1252
pandas : 3.0.0.dev0+163.g7281475054
numpy : 1.26.3
pytz : 2023.3.post1
dateutil : 2.8.2
setuptools : 69.0.3
pip : 23.3.2
Cython : None
pytest : 7.4.4
hypothesis : None
sphinx : 7.2.6
blosc : None
feather : None
xlsxwriter : None
lxml.etree : None
html5lib : None
pymysql : None
psycopg2 : None
jinja2 : 3.1.2
IPython : None
pandas_datareader : None
adbc-driver-postgresql: None
adbc-driver-sqlite : None
bs4 : 4.12.2
bottleneck : None
dataframe-api-compat : None
fastparquet : None
fsspec : None
gcsfs : None
matplotlib : 3.8.2
numba : None
numexpr : None
odfpy : None
openpyxl : None
pandas_gbq : None
pyarrow : None
pyreadstat : None
python-calamine : None
pyxlsb : None
s3fs : None
scipy : 1.12.0
sqlalchemy : None
tables : None
tabulate : None
xarray : None
xlrd : None
zstandard : None
tzdata : 2023.4
qtpy : None
pyqt5 : None