Skip to content

Commit

Permalink
Backport PR #57556 on branch 2.2.x (Remove PyArrow deprecation warnin…
Browse files Browse the repository at this point in the history
…g) (#57568)
  • Loading branch information
phofl committed Feb 22, 2024
1 parent 3bfedfe commit ea56e0c
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 61 deletions.
5 changes: 1 addition & 4 deletions .github/workflows/unit-tests.yml
Expand Up @@ -92,10 +92,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
31 changes: 1 addition & 30 deletions pandas/__init__.py
Expand Up @@ -203,36 +203,7 @@
stacklevel=2,
)

# 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, os
del warnings, os

# 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 @@ -267,26 +265,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 ea56e0c

Please sign in to comment.