import sys
import types
import warnings
+import platform
+import re
+warn_numba_platform = "Non-x86 system detected, Numba may give wrong results or crash" if not bool(re.match('i.?86|x86',platform.uname()[4])) else False
from pandas.util._exceptions import find_stack_level
"""
assert errors in {"warn", "raise", "ignore"}
+ if name=='numba' and warn_numba_platform:
+ warnings.warn(warn_numba_platform)
package_name = INSTALL_MAPPING.get(name)
install_name = package_name if package_name is not None else name
+import sys
+
import numpy as np
import pytest
+try:
+ from numba.core.errors import UnsupportedParforsError,TypingError
+except ImportError:
+ UnsupportedParforsError = ImportError
+ TypingError = ImportError
+
+from pandas.compat import is_platform_little_endian
+pytestmark = [pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False),pytest.mark.xfail(condition=sys.maxsize<2**33, raises=(UnsupportedParforsError,TypingError), reason="some Numba functionality is not available on 32 bit systems", strict=False)]
from pandas.errors import NumbaUtilError
import pandas.util._test_decorators as td
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
@pytest.mark.parametrize("jit", [True, False])
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
@pytest.mark.parametrize("jit", [True, False])
Series,
)
import pandas._testing as tm
-
+import sys
+try:
+ from numba.core.errors import UnsupportedParforsError,TypingError
+except ImportError:
+ UnsupportedParforsError = ImportError
+ TypingError = ImportError
+from pandas.compat import is_platform_little_endian
+pytestmark = pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
class TestEngine:
import pandas._testing as tm
from pandas.core.groupby.grouper import Grouper
from pandas.core.groupby.ops import BinGrouper
+from pandas.compat import is_platform_little_endian
@pytest.fixture
tm.assert_series_equal(res, expected)
@td.skip_if_no("numba")
+ @pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
def test_groupby_agg_numba_timegrouper_with_nat(
self, groupby_with_truncated_bingrouper
):
+import sys
+
import pytest
from pandas.errors import NumbaUtilError
option_context,
)
import pandas._testing as tm
+from pandas.compat import is_platform_little_endian
+try:
+ from numba.core.errors import UnsupportedParforsError,TypingError
+except ImportError:
+ UnsupportedParforsError = ImportError
+ TypingError = ImportError
@td.skip_if_no("numba")
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
@pytest.mark.parametrize("jit", [True, False])
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
@pytest.mark.parametrize("jit", [True, False])
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
def test_use_global_config():
def func_1(values, index):
return values + 1
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
def test_args_not_cached():
# GH 41647
def sum_last(values, index, n):
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
def test_index_data_correctly_passed():
# GH 43133
def f(values, index):
@td.skip_if_no("numba")
@pytest.mark.filterwarnings("ignore")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
def test_multiindex_one_key(nogil, parallel, nopython):
def numba_func(values, index):
return 1
import pytest
import pandas.util._test_decorators as td
+from pandas.compat import is_platform_little_endian
from pandas import (
DataFrame,
@pytest.fixture(
params=[
- pytest.param(("numba", True), marks=td.skip_if_no("numba")),
+ pytest.param(("numba", True), marks=[pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False),td.skip_if_no("numba")]),
("cython", True),
("cython", False),
]
"'Windows fatal exception: stack overflow' "
"and MacOS can timeout",
)
+from pandas.compat import is_platform_little_endian
+import platform
+import sys
+try:
+ from numba.core.errors import UnsupportedParforsError,TypingError
+except ImportError:
+ UnsupportedParforsError = ImportError
+ TypingError = ImportError
@pytest.fixture(params=["single", "table"])
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
class TestEngine:
expected = getattr(expand, method)(engine="cython", **kwargs)
tm.assert_equal(result, expected)
+ @pytest.mark.xfail(condition='mips' in platform.uname()[4].lower() and sys.maxsize<2**33, reason="Numba may give wrong answers on mipsel", strict=False)
@pytest.mark.parametrize("jit", [True, False])
def test_cache_apply(self, jit, nogil, parallel, nopython, step):
# Test that the functions are cached correctly if we switch functions
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
class TestEWM:
@pytest.mark.parametrize(
"grouper", [lambda x: x, lambda x: x.groupby("A")], ids=["None", "groupby"]
@td.skip_if_no("numba")
+@pytest.mark.xfail(condition=not is_platform_little_endian(), reason="Numba may crash on s390x", run=False, strict=False)
def test_use_global_config():
def f(x):
return np.mean(x) + 2
@td.skip_if_no("numba")
@pytest.mark.slow
+@pytest.mark.xfail(condition=sys.maxsize<2**33, raises=(UnsupportedParforsError,TypingError), reason="some Numba functionality is not available on 32 bit systems", strict=False)
@pytest.mark.filterwarnings("ignore")
# Filter warnings when parallel=True and the function can't be parallelized by Numba
class TestTableMethod:
"and MacOS can timeout",
)
+import sys
+try:
+ from numba.core.errors import UnsupportedParforsError
+except ImportError:
+ UnsupportedParforsError = ImportError
@td.skip_if_no("numba")
@pytest.mark.filterwarnings("ignore")
online_ewm.mean(update=df.head(1))
@pytest.mark.slow
+ @pytest.mark.xfail(condition=sys.maxsize<2**33, raises=UnsupportedParforsError, reason="some Numba functionality is not available on 32 bit systems", strict=False)
@pytest.mark.parametrize(
"obj", [DataFrame({"a": range(5), "b": range(5)}), Series(range(5), name="foo")]
)