Pandas version checks

  • [X] I have checked that this issue has not already been reported.

  • [X] I have confirmed this bug exists on the latest version of pandas.

  • [X] I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

pd.options.mode.copy_on_write = True
df = DataFrame({"a": [1, np.nan, 3]})
view = df[:]
df.interpolate(inplace=True)

Issue Description

view should not get modified

     a
0  1.0
1  2.0
2  3.0

same problem for ffill, bfill, pad and backfill

Expected Behavior

     a
0  1.0
1  np.nan
2  3.0

Installed Versions

INSTALLED VERSIONS ------------------ commit : 948bf6d0693bfecbaf1a4aa60bf539d84380b36a python : 3.8.15.final.0 python-bits : 64 OS : Darwin OS-release : 22.3.0 Version : Darwin Kernel Version 22.3.0: Thu Jan 5 20:50:21 PST 2023; root:xnu-8792.81.2~2/RELEASE_ARM64_T8112 machine : arm64 processor : arm byteorder : little LC_ALL : None LANG : None LOCALE : None.UTF-8 pandas : 2.0.0.dev0+1388.g948bf6d069 numpy : 1.23.5 pytz : 2022.7 dateutil : 2.8.2 setuptools : 65.6.3 pip : 22.3.1 Cython : 0.29.32 pytest : 7.2.0 hypothesis : 6.61.0 sphinx : 4.5.0 blosc : None feather : None xlsxwriter : 3.0.5 lxml.etree : 4.9.2 html5lib : 1.1 pymysql : 1.0.2 psycopg2 : 2.9.3 jinja2 : 3.1.2 IPython : 8.8.0 pandas_datareader: None bs4 : 4.11.1 bottleneck : 1.3.5 brotli : fastparquet : 2022.12.0 fsspec : 2022.11.0 gcsfs : 2022.11.0 matplotlib : 3.6.2 numba : 0.56.4 numexpr : 2.8.3 odfpy : None openpyxl : 3.0.10 pandas_gbq : None pyarrow : 10.0.1 pyreadstat : 1.2.0 pyxlsb : 1.0.10 s3fs : 2022.11.0 scipy : 1.9.3 snappy : sqlalchemy : 1.4.46 tables : 3.7.0 tabulate : 0.9.0 xarray : 2022.12.0 xlrd : 2.0.1 zstandard : 0.19.0 tzdata : None qtpy : None pyqt5 : None None

Comment From: lithomas1

In #49473, interpolate was not implemented, so I wouldn't expect this to work ATM.

I can have a look at this if you're not already working on this.

Comment From: phofl

49473 is about removing unnecessary eager copies (I added interpolate and friends yesterday). Basically optimisations that become available through CoW.

This one is about interpolate and friends not respecting CoW, e.g. mutating more than one object. Meaning, this is a "must" fix for 2.0 while the optimisations are just nice to have right now.

Comment From: phofl

opened a quick pr to make copies when necessary.