|
153 | 153 |
|
154 | 154 | _log = logging.getLogger(__name__) |
155 | 155 |
|
156 | | -__version__numpy__ = '1.10.0' # minimum required numpy version |
157 | | - |
158 | 156 | __bibtex__ = r"""@Article{Hunter:2007, |
159 | 157 | Author = {Hunter, J. D.}, |
160 | 158 | Title = {Matplotlib: A 2D graphics environment}, |
@@ -189,27 +187,21 @@ def compare_versions(a, b): |
189 | 187 | return False |
190 | 188 |
|
191 | 189 |
|
192 | | -try: |
193 | | - import dateutil |
194 | | -except ImportError: |
195 | | - raise ImportError("Matplotlib requires dateutil") |
196 | | - |
197 | | - |
198 | | -try: |
199 | | - import pyparsing |
200 | | -except ImportError: |
201 | | - raise ImportError("Matplotlib requires pyparsing") |
202 | | -else: |
203 | | - if not compare_versions(pyparsing.__version__, '2.0.1'): |
204 | | - raise ImportError( |
205 | | - "Matplotlib requires pyparsing>=2.0.1; you have %s" |
206 | | - % pyparsing.__version__) |
| 190 | +def _check_versions(): |
| 191 | + for modname, minver in [ |
| 192 | + ("cycler", "0.10"), |
| 193 | + ("dateutil", "2.1"), |
| 194 | + ("kiwisolver", "1.0.1"), |
| 195 | + ("numpy", "1.10"), |
| 196 | + ("pyparsing", "2.0.1"), |
| 197 | + ]: |
| 198 | + module = importlib.import_module(modname) |
| 199 | + if distutils.version.LooseVersion(module.__version__) < minver: |
| 200 | + raise ImportError("Matplotlib requires {}>={}; you have {}" |
| 201 | + .format(modname, minver, module.__version__)) |
207 | 202 |
|
208 | 203 |
|
209 | | -if not compare_versions(numpy.__version__, __version__numpy__): |
210 | | - raise ImportError( |
211 | | - "Matplotlib requires numpy>=%s; you have %s" % ( |
212 | | - __version__numpy__, numpy.__version__)) |
| 204 | +_check_versions() |
213 | 205 |
|
214 | 206 |
|
215 | 207 | if not hasattr(sys, 'argv'): # for modpython |
|
0 commit comments