1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from distutils.version import LooseVersion
- import pytest
- import pandas as pd
- from pandas.core.computation.check import _MIN_NUMEXPR_VERSION
- from pandas.core.computation.engines import _engines
- import pandas.core.computation.expr as expr
- def test_compat():
- # test we have compat with our version of nu
- from pandas.core.computation.check import _NUMEXPR_INSTALLED
- try:
- import numexpr as ne
- ver = ne.__version__
- if LooseVersion(ver) < LooseVersion(_MIN_NUMEXPR_VERSION):
- assert not _NUMEXPR_INSTALLED
- else:
- assert _NUMEXPR_INSTALLED
- except ImportError:
- pytest.skip("not testing numexpr version compat")
- @pytest.mark.parametrize('engine', _engines)
- @pytest.mark.parametrize('parser', expr._parsers)
- def test_invalid_numexpr_version(engine, parser):
- def testit():
- a, b = 1, 2 # noqa
- res = pd.eval('a + b', engine=engine, parser=parser)
- assert res == 3
- if engine == 'numexpr':
- try:
- import numexpr as ne
- except ImportError:
- pytest.skip("no numexpr")
- else:
- if (LooseVersion(ne.__version__) <
- LooseVersion(_MIN_NUMEXPR_VERSION)):
- with pytest.raises(ImportError):
- testit()
- else:
- testit()
- else:
- testit()
|