Repository: easybuilders/easybuild-easyconfigs

Issue:
nbconvert disabled in IPython 5.1.0 easyconfig using Python 2.7.12
I was forced to exclude the `nbconvert` extension from the IPython 5.1.0 easyconfig using Python 2.7.12 as a base in #3823, because it was responsible for the sanity check failing.

Any sanity check command trying to access the `IPython` module failed with an error like this:

```
== 2016-11-17 16:36:01,157 extensioneasyblock.py:136 WARNING Sanity check for ipywidgets failed: ipywidgets failed to install, cmd 'python -c 'import ipywidgets'' (stdin: None) output: Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/user/home/gent/vsc400/vsc40023/eb_phanpyscratch/CO7/haswell-ib/software/IPython/5.1.0-intel-2016b-Python-2.7.12/lib/python2.7/site-packages/ipywidgets/__init__.py", line 20, in <module>
    from IPython import get_ipython
  File "/user/home/gent/vsc400/vsc40023/eb_phanpyscratch/CO7/haswell-ib/software/IPython/5.1.0-intel-2016b-Python-2.7.12/lib/python2.7/site-packages/IPython/__init__.py", line 48, in <module>
    from .core.application import Application
  File "/user/home/gent/vsc400/vsc40023/eb_phanpyscratch/CO7/haswell-ib/software/IPython/5.1.0-intel-2016b-Python-2.7.12/lib/python2.7/site-packages/IPython/core/application.py", line 25, in <module>
    from IPython.core import release, crashhandler
  File "/user/home/gent/vsc400/vsc40023/eb_phanpyscratch/CO7/haswell-ib/software/IPython/5.1.0-intel-2016b-Python-2.7.12/lib/python2.7/site-packages/IPython/core/crashhandler.py", line 28, in <module>
    from IPython.core import ultratb
  File "/user/home/gent/vsc400/vsc40023/eb_phanpyscratch/CO7/haswell-ib/software/IPython/5.1.0-intel-2016b-Python-2.7.12/lib/python2.7/site-packages/IPython/core/ultratb.py", line 128, in <module>
    from IPython.utils.terminal import get_terminal_size
  File "/user/home/gent/vsc400/vsc40023/eb_phanpyscratch/CO7/haswell-ib/software/IPython/5.1.0-intel-2016b-Python-2.7.12/lib/python2.7/site-packages/IPython/utils/terminal.py", line 22, in <module>
    from backports.shutil_get_terminal_size import get_terminal_size as _get_terminal_size
ImportError: No module named shutil_get_terminal_size
```

The problem was that the `entrypoints` Python package (https://pypi.python.org/pypi/entrypoints), which is required for `nbconvert`, pulls in the `configparser` package (https://pypi.python.org/pypi/configparser) as a dependency, which also provides a `backports` package.

The import from `backports.shutil_get_terminal_size` fails because it is hitting the `backports` namespace provided by `configparser` rather than the one provided by the `backports.shutil_get_terminal_size` package (https://pypi.python.org/pypi/backports.shutil_get_terminal_size).

At this time, I have no idea why this suddenly pops up now, especially since the tests reports in #3424 show that this originally was no problem, even though all components responsible for this problem were already included...


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -47,7 +47,7 @@
 # recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like
 #   UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0'
 # This causes problems further up the dependency chain...
-VERSION = '3.1.2'
+VERSION = '3.2.0'
 
 API_VERSION = VERSION.split('.')[0]
 EB_VERSION = '.'.join(VERSION.split('.')[0:2])


Test patch: