easyblock = 'PythonBundle' name = 'matplotlib' version = '3.5.2' homepage = 'https://matplotlib.org' description = """matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell, web application servers, and six graphical user interface toolkits.""" toolchain = {'name': 'intel', 'version': '2022a'} builddependencies = [ ('pkgconf', '1.8.0'), ('cppy', '1.2.1') ] dependencies = [ ('Python', '3.10.4'), ('SciPy-bundle', '2022.05'), ('libpng', '1.6.37'), ('freetype', '2.12.1'), ('Tkinter', '%(pyver)s'), ('Pillow', '9.1.1'), ('Qhull', '2020.2') ] use_pip = True sanity_pip_check = True # avoid that matplotlib downloads and builds its own copies of freetype and qhull _fix_setup = "sed -e 's/#system_freetype = False/system_freetype = True/g' " _fix_setup += "-e 's/#system_qhull = False/system_qhull = True/g' mplsetup.cfg.template >setup.cfg && " _include_path = "export CPLUS_INCLUDE_PATH=$EBROOTFREETYPE/include/freetype2:${CPLUS_INCLUDE_PATH} && " exts_list = [ ('fonttools', '4.34.0', { 'modulename': 'fontTools', 'source_tmpl': SOURCE_ZIP, 'checksums': ['73d3fab85790f076d56db431bfdf9ce51b566816ff74d51e050e11ab1ffa8f8b'], }), ('Cycler', '0.11.0', { 'modulename': 'cycler', 'source_tmpl': 'cycler-%(version)s.tar.gz', 'source_urls': ['https://pypi.python.org/packages/source/C/Cycler'], 'checksums': ['9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f'], }), ('kiwisolver', '1.4.3', { 'source_urls': ['https://pypi.python.org/packages/source/k/kiwisolver'], 'checksums': ['ab8a15c2750ae8d53e31f77a94f846d0a00772240f1c12817411fa2344351f86'], }), (name, version, { 'preinstallopts': _fix_setup + _include_path, 'source_urls': ['https://pypi.python.org/packages/source/m/matplotlib'], 'checksums': ['48cf850ce14fa18067f2d9e0d646763681948487a8080ec0af2686468b4607a2'], }), ] sanity_check_commands = [ """python -c 'import matplotlib; matplotlib.use("Agg"); import matplotlib.pyplot' """, "python -c 'from mpl_toolkits.mplot3d import Axes3D'", ] # use non-interactive plotting backend as default # see https://matplotlib.org/tutorials/introductory/usage.html#what-is-a-backend modextravars = {'MPLBACKEND': 'Agg'} moduleclass = 'vis'