On Jun 22, 2011, at 8:51 AM, Ondrej Certik wrote: > On Wed, Jun 22, 2011 at 12:09 AM, Aaron Meurer <[email protected]> wrote: >> So far, I've coded up an import_module function, that wraps the try, >> except ImportError logic into a single unified function. It has >> support for checking the module version and the Python version and >> returning None if they are too old, even if the module is installed, >> and it also supports raising warnings when the module cannot be used. >> You can see the code at >> https://github.com/asmeurer/sympy/tree/external. >> >> I've yet to apply this everywhere in SymPy (I will do it tomorrow). I >> still need to decide if it will be good enough to use >> import_module('numpy', min_python_version=(2, 6)) everywhere in the >> quantum module, or if I should centralize numpy importing in that >> module even further. >> >> But it should a *lot* less code, i.e., instead of >> >> import sys >> import warnings >> >> try: >> if sys.version_info < (2, 6): >> warnings.warn("Python version too old to use numpy") >> raise ImportError >> import numpy >> except ImportError: >> <do numpy not supported stuff> >> >> in every single quantum file that uses numpy (including the tests), we >> would just have >> >> from sympy.external import import_module >> numpy = import_module('numpy', min_python_version=(2, 6)) >> if not numpy: >> <do numpy not supported stuff> >> >> Aaron Meurer >> >> On Mon, Jun 20, 2011 at 6:11 PM, Aaron Meurer <[email protected]> wrote: >>> It should at least be in a separate file for the quantum code. I >>> didn't consider to make one file for it for all of SymPy. I'm waiting >>> to see what Brian Granger thinks, since he knows the most about the >>> quantum module. > > So numpy is optionally imported in the quantum module, and sympy fails > to import with a particular version of numpy and python2.5? > > If it's just a test failure on a particular combination of > numpy/python and it's not easy for us to fix currently, I would just > document it in the release notes and release. > > Ondřej
The problem is that it's more than a test failure. Importing the quantum module fails, which kills the test runner completely. So actually, it's not really correct that numpy is optionally imported. If it's installed, it's always imported and used. And it's not too hard to fix. We just need to disable numpy in the quantum code in Python 2.4/2.5. I wrote this helper function to make it easier to do this. Aaron Meurer -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
