diff --git a/easybuild/easyconfigs/g/graphviz-python/graphviz-python-0.21-GCCcore-13.3.0.eb b/easybuild/easyconfigs/g/graphviz-python/graphviz-python-0.21-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..8bac31bf93d --- /dev/null +++ b/easybuild/easyconfigs/g/graphviz-python/graphviz-python-0.21-GCCcore-13.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'PythonPackage' + +name = 'graphviz-python' +version = '0.21' + +homepage = 'https://pypi.python.org/pypi/graphviz' +description = """Simple Python interface for Graphviz""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://pypi.python.org/packages/source/g/graphviz'] +sources = ['graphviz-%(version)s.tar.gz'] +checksums = ['20743e7183be82aaaa8ad6c93f8893c923bd6658a04c32ee115edb3c8a835f78'] + +builddependencies = [ + ('binutils', '2.42'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('Graphviz', '12.2.0'), + ('setuptools', '80.9.0'), +] + +options = {'modulename': 'graphviz'} + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/i/iodata/iodata-1.0.0a8-foss-2024a.eb b/easybuild/easyconfigs/i/iodata/iodata-1.0.0a8-foss-2024a.eb new file mode 100644 index 00000000000..a90f510ae6e --- /dev/null +++ b/easybuild/easyconfigs/i/iodata/iodata-1.0.0a8-foss-2024a.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonPackage' + +name = 'iodata' +version = '1.0.0a8' + +homepage = 'https://github.com/theochem/iodata' +description = """Python library for reading, writing, and converting computational chemistry file formats and +generating input files.""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +source_urls = ['https://github.com/theochem/iodata/releases/download/v%(version)s/'] +sources = ['qc_iodata-%(version)s-py3-none-any.whl'] +checksums = ['1365f783448c1ead99a019fabd0bab8f1a82a49e4485eae9c40988aba9e41daa'] + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), +] + +sanity_check_paths = { + 'files': ['bin/iodata-convert'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["iodata-convert --help"] + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/pyiron-gpl/pyiron-gpl-0.0.5-20250512-foss-2024a-mbocus.eb b/easybuild/easyconfigs/p/pyiron-gpl/pyiron-gpl-0.0.5-20250512-foss-2024a-mbocus.eb new file mode 100644 index 00000000000..12824973125 --- /dev/null +++ b/easybuild/easyconfigs/p/pyiron-gpl/pyiron-gpl-0.0.5-20250512-foss-2024a-mbocus.eb @@ -0,0 +1,48 @@ +easyblock = 'PythonBundle' + +name = 'pyiron-gpl' +version = '0.0.5-20250512' +local_commit = 'd2d8680' +versionsuffix = '-mbocus' + +homepage = 'https://github.com/mbocus/pyiron_gpl' +description = """Additional modules for the pyiron IDE licensed under GPLv3. +Sources are from fork of pyiron-gpl by mbocus. +""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('pyiron', '0.5.2-20250921'), + ('iodata', '1.0.0a8'), +] + +# fix version and unpin dep versions +local_preinstallopts = ( + rf"""sed -i -e "s/\('.*\)==[^']\+',/\1',/g" -e 's/versioneer.get_version(),/"{version}",/' -e "s/==[^']*//" """ + "setup.py && " +) + +exts_list = [ + (name, version, { + 'preinstallopts': local_preinstallopts, + 'source_urls': ['https://github.com/mbocus/pyiron_gpl/archive/'], + 'sources': [{ + 'download_filename': f'{local_commit}.tar.gz', + 'filename': f'%(name)s-%(version)s-{local_commit}.tar.gz', + }], + 'checksums': ['305ec6688bb7f7c976797aa470e3b6e1009ac46315909b10553e878e912039d6'], + }), +] + +# fix __version__ +postinstallcmds = [ + f"sed -i -e 's/0.1.1/{version}/' -e '/get_versions/d' " + "%(installdir)s/lib/python%(pyshortver)s/site-packages/pyiron_gpl/__init__.py" +] + +check_ldshared = True + +moduleclass = 'chem' diff --git a/easybuild/easyconfigs/p/pyiron/pyiron-0.5.2-20250921-foss-2024a.eb b/easybuild/easyconfigs/p/pyiron/pyiron-0.5.2-20250921-foss-2024a.eb new file mode 100644 index 00000000000..c1d8654d13f --- /dev/null +++ b/easybuild/easyconfigs/p/pyiron/pyiron-0.5.2-20250921-foss-2024a.eb @@ -0,0 +1,163 @@ +easyblock = 'PythonBundle' + +name = 'pyiron' +version = '0.5.2-20250921' +local_commit = '7ed460' + +homepage = 'https://github.com/pyiron/pyiron' +description = "An integrated development environment (IDE) for computational materials science." + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('poetry', '1.8.3'), + ('hatchling', '1.24.2'), + ('pybind11', '2.13.6'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), + ('Python-bundle-PyPI', '2024.06'), + ('ASE', '3.23.0'), + ('phonopy', '2.40.0'), + ('scikit-learn', '1.5.2'), + ('nglview', '3.1.4'), + ('h5py', '3.12.1'), + ('SQLAlchemy', '2.0.36'), + ('PyYAML', '6.0.2'), + ('tqdm', '4.66.5'), + ('GitPython', '3.1.43'), + ('Pint', '0.24.4'), + ('PyTables', '3.10.2'), + ('PyZMQ', '26.2.0'), + ('ruamel.yaml', '0.18.6'), + ('matplotlib', '3.9.2'), + ('spglib-python', '2.5.0'), + ('graphviz-python', '0.21'), + ('flit-core', '3.12.0'), + ('pymatgen', '2025.6.14'), + ('setuptools', '80.9.0'), +] + +exts_list = [ + ('packaging', '25.0', { + 'checksums': ['d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f'], + }), + ('typing_extensions', '4.14.0', { + 'checksums': ['8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4'], + }), + ('isodate', '0.7.2', { + 'checksums': ['4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6'], + }), + ('rdflib', '7.1.4', { + 'checksums': ['fed46e24f26a788e2ab8e445f7077f00edcf95abb73bcef4b86cefa8b62dd174'], + }), + ('prettytable', '3.7.0', { + 'checksums': ['ef8334ee40b7ec721651fc4d37ecc7bb2ef55fde5098d994438f0dfdaa385c0c'], + }), + ('typeguard', '4.4.4', { + 'checksums': ['3a7fd2dffb705d4d0efaed4306a704c89b9dee850b688f060a8b1615a79e5f74'], + }), + ('owlrl', '7.1.3', { + 'checksums': ['c9acf66135821ed7a6c4e002387bdb60a5804c86bf0210310df7d5a5da5d2eb1'], + }), + ('pyshacl', '0.30.1', { + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'checksums': ['d7e0c21b25e948bb643dbc5db6258da64a90a8ac89055c1fe562b469031072aa'], + }), + ('deprecated', '1.2.18', { + 'checksums': ['422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d'], + }), + ('semantikon', '0.0.20', { + 'checksums': ['ebd6c2790be5d57955cecb5a670010b1cefb3d32c8f57bb946c8be678b9f5d5d'], + }), + ('executorlib', '1.7.1', { + 'checksums': ['fe0e9665aa4179d25acd2be7232bf806bbe19069266c49a795143f224c383fd8'], + }), + ('sphinx_parser', '0.1.0', { + 'checksums': ['19a0fb45671fc011e1b0b8f192b6691419a1e3b394bfdac2fb1aaa2a3cf5782f'], + }), + ('pyscal3', '3.2.7', { + 'source_urls': ['https://github.com/pyscal/pyscal3/archive'], + 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': '%(name)s-%(version)s.tar.gz'}], + 'checksums': ['a5e86e61abe7a0a37aada16ffeb56cbd0d8761c80acb248dd089ca0be2e9cc1f'], + # pybind11 is only a build dependency for pyscal3 + 'preinstallopts': """sed -i "s/'pybind11',//g" setup.py && """, + }), + ('msgpack', '1.1.1', { + 'checksums': ['77b79ce34a2bdab2594f490c8e80dd62a02d650b91a75159a63ec413b8d104cd'], + }), + ('h5io', '0.2.4', { + 'checksums': ['473efdf172f3fc9cddf19131ad281a5ff085c18579b3adce287ba873bbb12603'], + }), + ('h5io_browser', '0.1.5', { + 'checksums': ['2ad592da0e9ff65364e4a4554c7ff45b1787b64dc22300364e8ff370ea0bcd5d'], + }), + ('pysqa', '0.2.3', { + 'checksums': ['ef7441281ef62fe9418c44a63f9a899a87b276d0183f9389afb3ff8cb9ddbcea'], + }), + ('pyfileindex', '0.0.32', { + 'checksums': ['d2ade3c21761fd50395a9cf827618851d6b334cd8cffb19da7434d7c3d8018ac'], + }), + ('traitlets', '5.14.3', { + 'checksums': ['9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7'], + }), + ('seekpath', '2.1.0', { + 'checksums': ['31cec579628262e6d4a4c3693fefa70d6ccae1ceeef7c9d10ea3cd48988452c4'], + }), + ('structuretoolkit', '0.0.34', { + 'checksums': ['da9fa5f4e07fc9b4798feb622cff778312b9a2cb70ee671665f6a8afb63c66d4'], + }), + ('defusedxml', '0.7.1', { + 'checksums': ['1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69'], + }), + ('atomistics', '0.2.5', { + 'checksums': ['9d2e75151a53841e6402373126c59424089008ed4d1cf13bf8e0216bb10fcf53'], + }), + ('pyfiglet', '0.8.post1', { + 'checksums': ['c6c2321755d09267b438ec7b936825a4910fec696292139e664ca8670e103639'], + }), + ('mendeleev', '0.19.0', { + 'preinstallopts': "sed -i 's/2.9.2/2.9.1/' pyproject.toml && ", + 'checksums': ['7d513a3be0c2b45369c3c041eb949a76bc92ee42d833b1dee0048a919d3f9a78'], + }), + ('pylammpsmpi', '0.3.0', { + 'checksums': ['f2617f38715ac60f8d4fef982acdad41da38d9f2524555beaf0e68eb1dbc11d3'], + }), + ('pyiron_base', '0.15.1', { + 'checksums': ['62806100d8a70b82a34b4607dc85815a2c1d2a9e2d2eb34d3607040c0f48c6dc'], + }), + ('pyiron_dataclasses', '0.0.4', { + 'checksums': ['4d0889f159dcecdd35353d7ab2fd9eb68c196c73d1bbb6723648a73336a2cd55'], + }), + ('pyiron_snippets', '0.2.0', { + 'checksums': ['c46532fe476c79d1182477709b7fa8a66c92e3ae6082c6ccfc0ebef1f69ed046'], + }), + ('pyiron_atomistics', '0.7.18', { + 'patches': ['pyiron_atomistics-0.7.18_unpin-dep-versions.patch'], + 'checksums': [ + {'pyiron_atomistics-0.7.18.tar.gz': '5d16a3e39abf4bff6be366c8c135a65323bfc648ed9d2cd98a8fe1d497f185fd'}, + {'pyiron_atomistics-0.7.18_unpin-dep-versions.patch': + '6ac9369191dfef4a85b59fc0d3035489d53ad89cc19cb39fa59577843ff9edf6'}, + ], + }), + ('pyiron_lammps', '0.4.6', { + 'checksums': ['ecf36ec09c4c27ab099b234f064712867d14b4ff34760a1c6abd6cece2cfebe6'], + }), + ('pyiron_vasp', '0.2.12', { + 'checksums': ['d6c73cd7cc5536a4d40d77bf9823af4fe979ea854f78f2c77a9356084246c495'], + }), + (name, version, { + 'source_urls': ['https://github.com/pyiron/pyiron/archive'], + 'sources': [{ + 'download_filename': f'{local_commit}.tar.gz', + 'filename': f'%(name)s-%(version)s-{local_commit}.tar.gz' + }], + 'checksums': ['4792bff6c13f7a07a2835bc5b7963400ea6f08392b0ad4ece1e31f6f42e09075'], + }), +] + +check_ldshared = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/pyiron/pyiron_atomistics-0.7.18_unpin-dep-versions.patch b/easybuild/easyconfigs/p/pyiron/pyiron_atomistics-0.7.18_unpin-dep-versions.patch new file mode 100644 index 00000000000..f8b56549479 --- /dev/null +++ b/easybuild/easyconfigs/p/pyiron/pyiron_atomistics-0.7.18_unpin-dep-versions.patch @@ -0,0 +1,64 @@ +Unpin strict dependencies versions +Author: Pavel Tomanek +--- pyproject.toml.orig 2025-09-25 11:08:55.295006783 +0200 ++++ pyproject.toml 2025-09-25 11:11:13.137753925 +0200 +@@ -1,5 +1,5 @@ + [build-system] +-requires = ["ase", "atomistics", "defusedxml", "h5py", "matplotlib", "mendeleev", "mp-api", "numpy", "pandas", "phonopy", "pint", "pyiron_base", "pylammpsmpi", "scipy", "scikit-learn", "seekpath", "setuptools", "spglib", "structuretoolkit", "hatchling==1.27.0", "hatch-vcs==0.5.0"] ++requires = ["ase", "atomistics", "defusedxml", "h5py", "matplotlib", "mendeleev", "mp-api", "numpy", "pandas", "phonopy", "pint", "pyiron_base", "pylammpsmpi", "scipy", "scikit-learn", "seekpath", "setuptools", "spglib", "structuretoolkit", "hatchling", "hatch-vcs"] + build-backend = "hatchling.build" + + [project] +@@ -24,29 +24,29 @@ + "Programming Language :: Python :: 3.12", + ] + dependencies = [ +- "ase>=3.23.0,<=3.25.0", +- "atomistics>=0.1.33,<=0.2.5", +- "defusedxml>=0.7.0,<=0.7.1", +- "h5py>=3.9.0,<=3.13.0", +- "matplotlib>=3.5.3,<=3.10.1", +- "mendeleev==0.19.0", +- "mp-api>=0.37.0,<=0.45.9", +- "numpy==1.26.4", +- "pandas>=2.0.3,<=2.3.2", +- "phonopy>=2.20.0,<=2.43.2", +- "pint>=0.18,<=0.24.4", +- "pyiron_base>=0.13.0,<=0.14.3", +- "pyiron_lammps>=0.3.2,<=0.4.6", +- "pyiron_snippets>=0.1.3,<=0.2.0", +- "pyiron_vasp>=0.2.2,<=0.2.12", +- "pylammpsmpi>=0.2.18,<=0.3.0", +- "pyscal3>=3.2.5,<=3.2.7", +- "scipy>=1.15.0,<=1.15.2", +- "scikit-learn>=1.2.1,<=1.6.1", +- "seekpath>=1.9.5,<=2.1.0", +- "spglib>=2.0.2,<=2.6.0", +- "structuretoolkit>=0.0.29,<=0.0.34", +- "sphinx-parser==0.1.0", ++ "ase", ++ "atomistics", ++ "defusedxml", ++ "h5py", ++ "matplotlib", ++ "mendeleev", ++ "mp-api", ++ "numpy", ++ "pandas", ++ "phonopy", ++ "pint", ++ "pyiron_base", ++ "pyiron_lammps", ++ "pyiron_snippets", ++ "pyiron_vasp", ++ "pylammpsmpi", ++ "pyscal3", ++ "scipy", ++ "scikit-learn", ++ "seekpath", ++ "spglib", ++ "structuretoolkit", ++ "sphinx-parser", + ] + dynamic = ["version"] + diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 9e19b593f87..3a326f5d295 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -471,6 +471,8 @@ def check_dep_vars(self, gen, dep, dep_vars): # filter out one per Python version ('Z3', ('-Python-2', True)), ('Z3', ('-Python-3', True)), + # allow Graphviz coexistence by ignoring the -minimal variant when both exist + ('Graphviz', '-minimal'), ] for dep_name, version_suffix in filter_variants: # always retain at least one dep variant