Skip to content

Commit

Permalink
Remove PyArrow deprecation warning (#57556)
Browse files Browse the repository at this point in the history
* Revert "DEPS: Add warning if pyarrow is not installed (#56896)"

This reverts commit 5c2a407

* Add whatsnew

* Update

* Update doc/source/whatsnew/v2.2.1.rst

Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>

---------

Co-authored-by: Matthew Roeschke <10647082+mroeschke@users.noreply.github.com>
  • Loading branch information
phofl and mroeschke committed Feb 22, 2024
1 parent 83fec18 commit 4ed67ac
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 63 deletions.
5 changes: 1 addition & 4 deletions .github/workflows/unit-tests.yml
Expand Up @@ -64,10 +64,7 @@ jobs:
- name: "Numpy Dev"
env_file: actions-311-numpydev.yaml
pattern: "not slow and not network and not single_cpu"
# Currently restricted the warnings that error to Deprecation Warnings from numpy
# done since pyarrow isn't compatible with numpydev always
# TODO: work with pyarrow to revert this?
test_args: "-W error::DeprecationWarning:numpy -W error::FutureWarning:numpy"
test_args: "-W error::DeprecationWarning -W error::FutureWarning"
- name: "Pyarrow Nightly"
env_file: actions-311-pyarrownightly.yaml
pattern: "not slow and not network and not single_cpu"
Expand Down
10 changes: 10 additions & 0 deletions doc/source/whatsnew/v2.2.1.rst
Expand Up @@ -67,6 +67,16 @@ Bug fixes

Other
~~~~~

.. note::

The ``DeprecationWarning`` that was raised when pandas was imported without PyArrow being
installed has been removed. This decision was made because the warning was too noisy for too
many users and a lot of feedback was collected about the decision to make PyArrow a required
dependency. Pandas is currently considering the decision whether or not PyArrow should be added
as a hard dependency in 3.0. Interested users can follow the discussion
`here <https://github.com/pandas-dev/pandas/issues/57073>`_.

- Added the argument ``skipna`` to :meth:`DataFrameGroupBy.first`, :meth:`DataFrameGroupBy.last`, :meth:`SeriesGroupBy.first`, and :meth:`SeriesGroupBy.last`; achieving ``skipna=False`` used to be available via :meth:`DataFrameGroupBy.nth`, but the behavior was changed in pandas 2.0.0 (:issue:`57019`)
- Added the argument ``skipna`` to :meth:`Resampler.first`, :meth:`Resampler.last` (:issue:`57019`)

Expand Down
32 changes: 0 additions & 32 deletions pandas/__init__.py
@@ -1,7 +1,5 @@
from __future__ import annotations

import warnings

__docformat__ = "restructuredtext"

# Let users know if they're missing any of our hard dependencies
Expand Down Expand Up @@ -190,36 +188,6 @@
__git_version__ = v.get("full-revisionid")
del get_versions, v

# DeprecationWarning for missing pyarrow
from pandas.compat.pyarrow import pa_version_under10p1, pa_not_found

if pa_version_under10p1:
# pyarrow is either too old or nonexistent, warn
from pandas.compat._optional import VERSIONS

if pa_not_found:
pa_msg = "was not found to be installed on your system."
else:
pa_msg = (
f"was too old on your system - pyarrow {VERSIONS['pyarrow']} "
"is the current minimum supported version as of this release."
)

warnings.warn(
f"""
Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),
(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)
but {pa_msg}
If this would cause problems for you,
please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466
""", # noqa: E501
DeprecationWarning,
stacklevel=2,
)
del VERSIONS, pa_msg

# Delete all unnecessary imported modules
del pa_version_under10p1, pa_not_found, warnings

# module level doc-string
__doc__ = """
Expand Down
2 changes: 0 additions & 2 deletions pandas/compat/pyarrow.py
Expand Up @@ -8,7 +8,6 @@
import pyarrow as pa

_palv = Version(Version(pa.__version__).base_version)
pa_not_found = False
pa_version_under10p1 = _palv < Version("10.0.1")
pa_version_under11p0 = _palv < Version("11.0.0")
pa_version_under12p0 = _palv < Version("12.0.0")
Expand All @@ -17,7 +16,6 @@
pa_version_under14p1 = _palv < Version("14.0.1")
pa_version_under15p0 = _palv < Version("15.0.0")
except ImportError:
pa_not_found = True
pa_version_under10p1 = True
pa_version_under11p0 = True
pa_version_under12p0 = True
Expand Down
25 changes: 0 additions & 25 deletions pandas/tests/test_common.py
Expand Up @@ -8,8 +8,6 @@
import numpy as np
import pytest

import pandas.util._test_decorators as td

import pandas as pd
from pandas import Series
import pandas._testing as tm
Expand Down Expand Up @@ -255,26 +253,3 @@ def test_bz2_missing_import():
code = textwrap.dedent(code)
call = [sys.executable, "-c", code]
subprocess.check_output(call)


@td.skip_if_installed("pyarrow")
@pytest.mark.parametrize("module", ["pandas", "pandas.arrays"])
def test_pyarrow_missing_warn(module):
# GH56896
response = subprocess.run(
[sys.executable, "-c", f"import {module}"],
capture_output=True,
check=True,
)
msg = """
Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),
(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)
but was not found to be installed on your system.
If this would cause problems for you,
please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466
""" # noqa: E501
stderr_msg = response.stderr.decode("utf-8")
# Split by \n to avoid \r\n vs \n differences on Windows/Unix
# https://stackoverflow.com/questions/11989501/replacing-r-n-with-n
stderr_msg = "\n".join(stderr_msg.splitlines())
assert msg in stderr_msg

0 comments on commit 4ed67ac

Please sign in to comment.