easyblock = 'Bundle'

name = 'IPython'
version = '5.1.0'
versionsuffix = '-Python-%(local_pyver)s'

homepage = 'http://ipython.org/index.html'
description = """IPython provides a rich architecture for interactive local_computing with:
 Powerful interactive shells (terminal and Qt-based).
 A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media.
 Support for interactive data visualization and use of GUI toolkits.
 Flexible, embeddable interpreters to load into your own projects.
 Easy to use, high performance tools for parallel local_computing."""

toolchain = {'name': 'foss', 'version': '2016b'}

dependencies = [
    ('Python', '2.7.12'),
    ('PyZMQ', '16.0.2', '%s-zmq4' % versionsuffix),
    ('testpath', '0.3', versionsuffix),
    # required by 'nbconvert', but causes problems w.r.t. 'backports' module...
    # see https://github.com/hpcugent/easybuild-easyconfigs/issues/3825
    #('entrypoints', '0.2.2', versionsuffix),
    ('path.py', '8.2.1', versionsuffix),
    ('prompt-toolkit', '1.0.6', versionsuffix),
]

# this is a bundle of Python packages
# XXX: the wheel packages (testpath, entrypoints, path.py, prompt-toolkit) have
# to be included as dependencies because bundling wheels does not work
exts_defaultclass = 'PythonPackage'
exts_filter = ("python -c 'import %(ext_name)s'", '')

exts_list = [
    ('nose', '1.3.7', {
        'source_urls': ['https://pypi.python.org/packages/source/n/nose/'],
    }),
    ('requests', '2.11.0', {
        'source_urls': ['https://pypi.python.org/packages/source/r/requests/'],
    }),
    ('nbformat', '4.1.0', {
        'source_urls': ['https://pypi.python.org/packages/source/n/nbformat/'],
    }),
    ('Pygments', '2.1.3', {
        'source_urls': ['https://pypi.python.org/packages/source/P/Pygments/'],
        'modulename': 'pygments',
    }),
    ('singledispatch', '3.4.0.3', {
        'source_urls': ['https://pypi.python.org/packages/source/s/singledispatch/'],
    }),
    ('certifi', '2016.8.8', {
        'source_urls': ['https://pypi.python.org/packages/source/c/certifi/'],
    }),
    ('backports_abc', '0.4', {
        'source_urls': ['https://pypi.python.org/packages/source/b/backports_abc/'],
    }),
    ('tornado', '4.4.1', {
        'source_urls': ['https://pypi.python.org/packages/source/t/tornado/'],
    }),
    ('MarkupSafe', '0.23', {
        'source_urls': ['https://pypi.python.org/packages/source/M/MarkupSafe/'],
        'modulename': 'markupsafe',
    }),
    ('Jinja2', '2.8', {
        'source_urls': ['https://pypi.python.org/packages/source/J/Jinja2/'],
        'modulename': 'jinja2',
    }),
    ('jupyter_client', '4.3.0', {
        'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_client/'],
    }),
    ('functools32', '3.2.3-2', {
        'source_urls': ['https://pypi.python.org/packages/source/f/functools32/'],
    }),
    ('jsonschema', '2.5.1', {
        'source_urls': ['https://pypi.python.org/packages/source/j/jsonschema/'],
    }),
    ('mistune', '0.7.3', {
        'source_urls': ['https://pypi.python.org/packages/source/m/mistune/'],
    }),
    ('ptyprocess', '0.5.1', {
        'source_urls': ['https://pypi.python.org/packages/source/p/ptyprocess/'],
    }),
    ('terminado', '0.6', {
        'source_urls': ['https://pypi.python.org/packages/source/t/terminado/'],
    }),
    ('setuptools', '25.2.0', {
        'source_urls': ['https://pypi.python.org/packages/source/s/setuptools/'],
    }),
    ('simplegeneric', '0.8.1', {
        'source_urls': ['https://pypi.python.org/packages/source/s/simplegeneric/'],
        'source_tmpl': 'simplegeneric-%(version)s.zip',
    }),
    ('ipython_genutils', '0.1.0', {
        'source_urls': ['https://pypi.python.org/packages/source/i/ipython_genutils/'],
    }),
    ('pathlib2', '2.1.0', {
        'source_urls': ['https://pypi.python.org/packages/source/p/pathlib2/'],
    }),
    ('pickleshare', '0.7.4', {
        'source_urls': ['https://pypi.python.org/packages/source/p/pickleshare/'],
    }),
    ('traitlets', '4.2.2', {
        'source_urls': ['https://pypi.python.org/packages/source/t/traitlets/'],
    }),
    ('notebook', '4.2.2', {
        'source_urls': ['https://pypi.python.org/packages/source/n/notebook/'],
    }),
    ('jupyter_core', '4.1.1', {
        'source_urls': ['https://pypi.python.org/packages/source/j/jupyter_core/'],
    }),
    ('ipykernel', '4.4.1', {
        'source_urls': ['https://pypi.python.org/packages/source/i/ipykernel/'],
    }),
    ('pexpect', '4.2.0', {
        'source_urls': ['https://pypi.python.org/packages/source/p/pexpect/'],
    }),
    # disabled because entrypoints on which this depends pull in configparser, which causes problems
    # see https://github.com/hpcugent/easybuild-easyconfigs/issues/3825
    #('nbconvert', '4.2.0', {
    #    'source_urls': ['https://pypi.python.org/packages/source/n/nbconvert/'],
    #}),
    ('backports.shutil_get_terminal_size', '1.0.0', {
        'source_urls': ['https://pypi.python.org/packages/source/b/backports.shutil_get_terminal_size/'],
    }),
    ('decorator', '4.0.10', {
        'source_urls': ['https://pypi.python.org/packages/source/d/decorator/'],
    }),
    ('ipython', version, {
        'source_urls': ['https://pypi.python.org/packages/source/i/ipython/'],
        'patches': ['ipython-5.0.0_fix-test-paths-symlink.patch'],
        'modulename': 'IPython',
    }),
    ('ipywidgets', '5.2.2', {
        'source_urls': ['https://pypi.python.org/packages/source/i/ipywidgets/'],
    }),
    ('widgetsnbextension', '1.2.6', {
        'source_urls': ['https://pypi.python.org/packages/source/w/widgetsnbextension/'],
    }),
]

modextrapaths = {'PYTHONPATH': ['lib/python%(local_pyshortver)s/site-packages']}

sanity_check_paths = {
    'files': ['bin/ipython'],
    'dirs': ['lib/python%(local_pyshortver)s/site-packages/IPython'],
}

sanity_check_commands = [
    ('ipython -h', ''),
    ('ipython notebook --help', ''),
    ('iptest', ''),
    ('iptest2', ''),
]

moduleclass = 'tools'
