.gitignore | 1 + numexpr/__init__.py | 4 +-- numexpr/_print_versions.py | 63 +++++++++++++++++++++++++++++++++++++++++++ numexpr/tests/__init__.py | 2 +- numexpr/tests/test_numexpr.py | 38 ++------------------------ setup.cfg | 3 +++ 6 files changed, 72 insertions(+), 39 deletions(-) diff --git a/.gitignore b/.gitignore index e28dd76..a93b2ef 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ numexpr.egg-info/ *~ doc/_build site.cfg +!alt/site.cfg .vscode *.pyd __config__.py diff --git a/numexpr/__init__.py b/numexpr/__init__.py index 9cabe69..41e3f95 100644 --- a/numexpr/__init__.py +++ b/numexpr/__init__.py @@ -51,8 +51,8 @@ __version__ = version.version def print_versions(): """Print the versions of software that numexpr relies on.""" try: - import numexpr.tests - return numexpr.tests.print_versions() + import numexpr._print_versions + return numexpr._print_versions.print_versions() except ImportError: # To maintain Python 2.6 compatibility we have simple error handling raise ImportError('`numexpr.tests` could not be imported, likely it was excluded from the distribution.') diff --git a/numexpr/_print_versions.py b/numexpr/_print_versions.py new file mode 100644 index 0000000..29160cf --- /dev/null +++ b/numexpr/_print_versions.py @@ -0,0 +1,63 @@ +""" +ALT's copy of upstream's numexpr.tests.test_numexpr.print_versions + +ALT doesn't ship tests, thus, print_versions is moved out. +""" + +import sys + +from packaging.version import Version + + +def get_minimum_numpy_version(): + try: + from numexpr.tests.test_numexpr import minimum_numpy_version + except ImportError: + minimum_numpy_version = None + return minimum_numpy_version + + +def print_versions(): + """Print the versions of software that numexpr relies on.""" + from numexpr import use_vml + import numexpr + import numpy as np + minimum_numpy_version = Version('1.7.0') + + # must be synced with numexpr.tests.test_numexpr.minimum_numpy_version + min_numpy = get_minimum_numpy_version() + if min_numpy is not None: + assert ( + min_numpy == minimum_numpy_version + ), f"Expected: {min_numpy!r}, actual: {minimum_numpy_version!r}" + + # from pkg_resources import parse_version + from numexpr.cpuinfo import cpu + import platform + + np_version = Version(np.__version__) + + if np_version < minimum_numpy_version: + print('*Warning*: NumPy version is lower than recommended: %s < %s' % (np_version, minimum_numpy_version)) + print('-=' * 38) + print('Numexpr version: %s' % numexpr.__version__) + print('NumPy version: %s' % np.__version__) + print('Python version: %s' % sys.version) + (sysname, nodename, release, os_version, machine, processor) = platform.uname() + print('Platform: %s-%s-%s' % (sys.platform, machine, os_version)) + try: + # cpuinfo doesn't work on OSX well it seems, so protect these outputs + # with a try block + cpu_info = cpu.info[0] + print('CPU vendor: %s' % cpu_info.get('VendorIdentifier', '')) + print('CPU model: %s' % cpu_info.get('ProcessorNameString', '')) + print('CPU clock speed: %s MHz' % cpu_info.get('~MHz','')) + except KeyError: + pass + print('VML available? %s' % use_vml) + if use_vml: + print('VML/MKL version: %s' % numexpr.get_vml_version()) + print('Number of threads used by default: %d ' + '(out of %d detected cores)' % (numexpr.nthreads, numexpr.ncores)) + print('Maximum number of threads: %s' % numexpr.MAX_THREADS) + print('-=' * 38) diff --git a/numexpr/tests/__init__.py b/numexpr/tests/__init__.py index 3fff411..3153c91 100644 --- a/numexpr/tests/__init__.py +++ b/numexpr/tests/__init__.py @@ -8,7 +8,7 @@ # rights to use. #################################################################### -from numexpr.tests.test_numexpr import test, print_versions +from numexpr.tests.test_numexpr import test if __name__ == '__main__': test() diff --git a/numexpr/tests/test_numexpr.py b/numexpr/tests/test_numexpr.py index c47ba84..a7b5096 100644 --- a/numexpr/tests/test_numexpr.py +++ b/numexpr/tests/test_numexpr.py @@ -1069,45 +1069,11 @@ class test_subprocess(TestCase): #print result -def print_versions(): - """Print the versions of software that numexpr relies on.""" - # from pkg_resources import parse_version - from numexpr.cpuinfo import cpu - import platform - - np_version = Version(np.__version__) - - if np_version < minimum_numpy_version: - print('*Warning*: NumPy version is lower than recommended: %s < %s' % (np_version, minimum_numpy_version)) - print('-=' * 38) - print('Numexpr version: %s' % numexpr.__version__) - print('NumPy version: %s' % np.__version__) - print('Python version: %s' % sys.version) - (sysname, nodename, release, os_version, machine, processor) = platform.uname() - print('Platform: %s-%s-%s' % (sys.platform, machine, os_version)) - try: - # cpuinfo doesn't work on OSX well it seems, so protect these outputs - # with a try block - cpu_info = cpu.info[0] - print('CPU vendor: %s' % cpu_info.get('VendorIdentifier', '')) - print('CPU model: %s' % cpu_info.get('ProcessorNameString', '')) - print('CPU clock speed: %s MHz' % cpu_info.get('~MHz','')) - except KeyError: - pass - print('VML available? %s' % use_vml) - if use_vml: - print('VML/MKL version: %s' % numexpr.get_vml_version()) - print('Number of threads used by default: %d ' - '(out of %d detected cores)' % (numexpr.nthreads, numexpr.ncores)) - print('Maximum number of threads: %s' % numexpr.MAX_THREADS) - print('-=' * 38) - - def test(verbosity=1): """ Run all the tests in the test suite. """ - print_versions() + numexpr.print_versions() # For some reason, NumPy issues all kinds of warnings when using Python3. # Ignoring them in tests should be ok, as all results are checked out. # See https://github.com/pydata/numexpr/issues/183 for details. @@ -1166,7 +1132,7 @@ def suite(): if __name__ == '__main__': - print_versions() + numexpr.print_versions() unittest.main(defaultTest='suite') # suite = suite() # unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/setup.cfg b/setup.cfg index 7470b5b..97e6f6e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -31,3 +31,6 @@ python_requires = >=3.7 # packaging # numpy +[options.packages.find] +exclude = + *.tests