diff options
| author | Justin Lecher <jlec@gentoo.org> | 2015-09-14 13:39:58 +0200 |
|---|---|---|
| committer | Justin Lecher <jlec@gentoo.org> | 2015-09-14 13:55:54 +0200 |
| commit | 9bfc3cd91fb88333c88bd9b6e2976a64f1bc99e2 (patch) | |
| tree | 336bd4015e8b1f35d73572836738d6ae80d3fdde /dev-python/astropy/files/astropy-ply.py | |
| parent | 7bfadf57996a90c629e9238a0ae292f5dfb77746 (diff) | |
| download | gentoo-9bfc3cd91fb88333c88bd9b6e2976a64f1bc99e2.tar.gz gentoo-9bfc3cd91fb88333c88bd9b6e2976a64f1bc99e2.tar.bz2 gentoo-9bfc3cd91fb88333c88bd9b6e2976a64f1bc99e2.zip | |
dev-python/astropy: Version Bump
import patches from fedora for unbundling
Closes gentoo/gentoo#10
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=556884
Package-Manager: portage-2.2.20.1
Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'dev-python/astropy/files/astropy-ply.py')
| -rw-r--r-- | dev-python/astropy/files/astropy-ply.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/dev-python/astropy/files/astropy-ply.py b/dev-python/astropy/files/astropy-ply.py new file mode 100644 index 000000000000..19eb104c4ca0 --- /dev/null +++ b/dev-python/astropy/files/astropy-ply.py @@ -0,0 +1,58 @@ +# Licensed under a 3-clause BSD style license - see LICENSE.rst + +""" +Handle loading ply package from system or from the bundled copy +""" + +import imp +from distutils.version import StrictVersion + + +def _find_module(name, path=None): + """ + Alternative to `imp.find_module` that can also search in subpackages. + """ + + parts = name.split('.') + + for part in parts: + if path is not None: + path = [path] + + fh, path, descr = imp.find_module(part, path) + + return fh, path, descr + +_PLY_MIN_VERSION = StrictVersion('3.4') + +# Update this to prevent Astropy from using its bundled copy of ply +# (but only if some other version of at least _PLY_MIN_VERSION can +# be provided) +_PLY_SEARCH_PATH = ['ply'] + + +for mod_name in _PLY_SEARCH_PATH: + try: + mod_info = _find_module(mod_name) + #mod_lex_info = _find_module(mod_name + '.lex') + except ImportError: + continue + + mod = imp.load_module(__name__, *mod_info) + #mod_lex = imp.load_module(__name__ + '.lex', *mod_lex_info) + + try: + # if StrictVersion(mod_lex.__version__) >= _PLY_MIN_VERSION: + # break + break + except (AttributeError, ValueError): + # Attribute error if the ply module isn't what it should be and doesn't + # have a .__version__; ValueError if the version string exists but is + # somehow bogus/unparseable + continue +else: + raise ImportError( + "Astropy requires the 'ply' module of minimum version {0}; " + "normally this is bundled with the astropy package so if you get " + "this warning consult the packager of your Astropy " + "distribution.".format(_PLY_MIN_VERSION)) |
