diff --git a/pandas/core/util/numba_.py b/pandas/core/util/numba_.py index 96907df3c48ad..03a0157a8bde4 100644 --- a/pandas/core/util/numba_.py +++ b/pandas/core/util/numba_.py @@ -9,8 +9,6 @@ from pandas.compat._optional import import_optional_dependency from pandas.errors import NumbaUtilError -from pandas.util.version import Version - GLOBAL_USE_NUMBA: bool = False NUMBA_FUNC_CACHE: dict[tuple[Callable, str], Callable] = {} @@ -87,12 +85,7 @@ def jit_user_function( """ numba = import_optional_dependency("numba") - if Version(numba.__version__) >= Version("0.49.0"): - is_jitted = numba.extending.is_jitted(func) - else: - is_jitted = isinstance(func, numba.targets.registry.CPUDispatcher) - - if is_jitted: + if numba.extending.is_jitted(func): # Don't jit a user passed jitted function numba_func = func else: diff --git a/pandas/tests/frame/test_ufunc.py b/pandas/tests/frame/test_ufunc.py index bdc4694d21963..4d858fb980860 100644 --- a/pandas/tests/frame/test_ufunc.py +++ b/pandas/tests/frame/test_ufunc.py @@ -251,7 +251,7 @@ def test_alignment_deprecation(): tm.assert_frame_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_alignment_deprecation_many_inputs(): # https://github.com/pandas-dev/pandas/issues/39184 # test that the deprecation also works with > 2 inputs -> using a numba diff --git a/pandas/tests/groupby/aggregate/test_numba.py b/pandas/tests/groupby/aggregate/test_numba.py index 4b915cd4c29ae..8e9df8a6da958 100644 --- a/pandas/tests/groupby/aggregate/test_numba.py +++ b/pandas/tests/groupby/aggregate/test_numba.py @@ -15,7 +15,7 @@ from pandas.core.util.numba_ import NUMBA_FUNC_CACHE -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_correct_function_signature(): def incorrect_function(x): return sum(x) * 2.7 @@ -31,7 +31,7 @@ def incorrect_function(x): data.groupby("key")["data"].agg(incorrect_function, engine="numba") -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_check_nopython_kwargs(): def incorrect_function(x, **kwargs): return sum(x) * 2.7 @@ -47,7 +47,7 @@ def incorrect_function(x, **kwargs): data.groupby("key")["data"].agg(incorrect_function, engine="numba", a=1) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") # Filter warnings when parallel=True and the function can't be parallelized by Numba @pytest.mark.parametrize("jit", [True, False]) @@ -76,7 +76,7 @@ def func_numba(values, index): tm.assert_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") # Filter warnings when parallel=True and the function can't be parallelized by Numba @pytest.mark.parametrize("jit", [True, False]) @@ -121,7 +121,7 @@ def func_2(values, index): tm.assert_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_use_global_config(): def func_1(values, index): return np.mean(values) - 3.4 @@ -136,7 +136,7 @@ def func_1(values, index): tm.assert_frame_equal(expected, result) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.parametrize( "agg_func", [ @@ -158,7 +158,7 @@ def test_multifunc_notimplimented(agg_func): grouped[1].agg(agg_func, engine="numba") -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_args_not_cached(): # GH 41647 def sum_last(values, index, n): @@ -175,7 +175,7 @@ def sum_last(values, index, n): tm.assert_series_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_index_data_correctly_passed(): # GH 43133 def f(values, index): diff --git a/pandas/tests/groupby/transform/test_numba.py b/pandas/tests/groupby/transform/test_numba.py index b2d72aec0527f..503de5ebd2330 100644 --- a/pandas/tests/groupby/transform/test_numba.py +++ b/pandas/tests/groupby/transform/test_numba.py @@ -12,7 +12,7 @@ from pandas.core.util.numba_ import NUMBA_FUNC_CACHE -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_correct_function_signature(): def incorrect_function(x): return x + 1 @@ -28,7 +28,7 @@ def incorrect_function(x): data.groupby("key")["data"].transform(incorrect_function, engine="numba") -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_check_nopython_kwargs(): def incorrect_function(x, **kwargs): return x + 1 @@ -44,7 +44,7 @@ def incorrect_function(x, **kwargs): data.groupby("key")["data"].transform(incorrect_function, engine="numba", a=1) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") # Filter warnings when parallel=True and the function can't be parallelized by Numba @pytest.mark.parametrize("jit", [True, False]) @@ -73,7 +73,7 @@ def func(values, index): tm.assert_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") # Filter warnings when parallel=True and the function can't be parallelized by Numba @pytest.mark.parametrize("jit", [True, False]) @@ -118,7 +118,7 @@ def func_2(values, index): tm.assert_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_use_global_config(): def func_1(values, index): return values + 1 @@ -133,7 +133,7 @@ def func_1(values, index): tm.assert_frame_equal(expected, result) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.parametrize( "agg_func", [["min", "max"], "min", {"B": ["min", "max"], "C": "sum"}] ) @@ -149,7 +149,7 @@ def test_multifunc_notimplimented(agg_func): grouped[1].transform(agg_func, engine="numba") -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_args_not_cached(): # GH 41647 def sum_last(values, index, n): @@ -166,7 +166,7 @@ def sum_last(values, index, n): tm.assert_series_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_index_data_correctly_passed(): # GH 43133 def f(values, index): diff --git a/pandas/tests/window/conftest.py b/pandas/tests/window/conftest.py index 30073bd55531f..fd8c11bbace6e 100644 --- a/pandas/tests/window/conftest.py +++ b/pandas/tests/window/conftest.py @@ -124,9 +124,7 @@ def ignore_na(request): return request.param -@pytest.fixture( - params=[pytest.param("numba", marks=td.skip_if_no("numba", "0.46.0")), "cython"] -) +@pytest.fixture(params=[pytest.param("numba", marks=td.skip_if_no("numba")), "cython"]) def engine(request): """engine keyword argument for rolling.apply""" return request.param @@ -134,7 +132,7 @@ def engine(request): @pytest.fixture( params=[ - pytest.param(("numba", True), marks=td.skip_if_no("numba", "0.46.0")), + pytest.param(("numba", True), marks=td.skip_if_no("numba")), ("cython", True), ("cython", False), ] diff --git a/pandas/tests/window/test_numba.py b/pandas/tests/window/test_numba.py index f507b6a465f5b..1086857f38b62 100644 --- a/pandas/tests/window/test_numba.py +++ b/pandas/tests/window/test_numba.py @@ -14,7 +14,7 @@ from pandas.core.util.numba_ import NUMBA_FUNC_CACHE -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") # Filter warnings when parallel=True and the function can't be parallelized by Numba class TestEngine: @@ -150,7 +150,7 @@ def add(values, x): tm.assert_frame_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") class TestEWMMean: @pytest.mark.parametrize( "grouper", [lambda x: x, lambda x: x.groupby("A")], ids=["None", "groupby"] @@ -229,7 +229,7 @@ def test_cython_vs_numba_times(self, grouper, nogil, parallel, nopython, ignore_ tm.assert_frame_equal(result, expected) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_use_global_config(): def f(x): return np.mean(x) + 2 @@ -241,7 +241,7 @@ def f(x): tm.assert_series_equal(expected, result) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") def test_invalid_kwargs_nopython(): with pytest.raises(NumbaUtilError, match="numba does not support kwargs with"): Series(range(1)).rolling(1).apply( @@ -249,7 +249,7 @@ def test_invalid_kwargs_nopython(): ) -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.slow @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") # Filter warnings when parallel=True and the function can't be parallelized by Numba diff --git a/pandas/tests/window/test_online.py b/pandas/tests/window/test_online.py index 461c62c07326d..a21be0b8be049 100644 --- a/pandas/tests/window/test_online.py +++ b/pandas/tests/window/test_online.py @@ -10,7 +10,7 @@ import pandas._testing as tm -@td.skip_if_no("numba", "0.46.0") +@td.skip_if_no("numba") @pytest.mark.filterwarnings("ignore:\\nThe keyword argument") class TestEWM: def test_invalid_update(self):