From 16da3048377293d570ebd65d08a811e68bdecb10 Mon Sep 17 00:00:00 2001 From: "Yuan (Cyrus) Chiang" <41962462+chiang-yuan@users.noreply.github.com> Date: Tue, 17 Sep 2024 07:37:51 -0700 Subject: [PATCH 01/12] add line split for potcar_symbols (#2463) @Andrew-S-Rosen I found the problem. It is not `emmet-core` or `pymargen` version issue. `input_set.potcar` needs line splitting similar to what is done at [line 424](https://github.com/chiang-yuan/quacc/blob/ea34aa63b76d7cdd3c1eed0d674827dd04a16337/src/quacc/calculators/vasp/params.py#L424) I tested the vasp workflow locally and didn't run into any errors This will close issue #2457 and close https://github.com/materialsproject/atomate2/pull/984 --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Andrew S. Rosen --- src/quacc/calculators/vasp/params.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/quacc/calculators/vasp/params.py b/src/quacc/calculators/vasp/params.py index 052a44a8dd..283249d315 100644 --- a/src/quacc/calculators/vasp/params.py +++ b/src/quacc/calculators/vasp/params.py @@ -449,7 +449,11 @@ def convert_vasp_maker(self, VaspMaker: BaseVaspMaker) -> dict: ) self.incar_dict = input_set.incar self.pmg_kpts = input_set.kpoints - self.potcar_symbols = input_set.potcar + self.potcar_symbols = ( + input_set.potcar.split("\n") + if isinstance(input_set.potcar, str) + else input_set.potcar + ) self.potcar_functional = input_set_generator.potcar_functional self.poscar = input_set.poscar return self._convert() From 8b69f904f5b75090e8c7113d15635e4836d390da Mon Sep 17 00:00:00 2001 From: "Andrew S. Rosen" Date: Tue, 17 Sep 2024 10:58:09 -0400 Subject: [PATCH 02/12] Update atomate2 pin in pyproject.toml (#2464) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 249fb15581..66e8895f4a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,7 @@ dask = ["dask[distributed]>=2023.12.1", "dask-jobqueue>=0.8.2"] defects = ["pymatgen-analysis-defects>=2023.8.22", "shakenbreak>=3.2.0"] jobflow = ["jobflow[fireworks]>=0.1.14", "jobflow-remote>=0.1.0"] mlp = ["matgl>=1.1.2", "chgnet>=0.3.3", "mace-torch>=0.3.3", "torch-dftd>=0.4.0"] -mp = ["atomate2<=0.0.14"] +mp = ["atomate2>=0.0.14"] newtonnet = ["newtonnet>=1.1"] parsl = ["parsl[monitoring]>=2024.5.27; platform_system!='Windows'"] phonons = ["phonopy>=2.20.0", "seekpath>=2.1.0"] From 22cb6d7b20b5cac9f28a39b69da65f71a4f185d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:58:25 +0000 Subject: [PATCH 03/12] Bump jobflow-remote from 0.1.3 to 0.1.4 (#2466) Bumps [jobflow-remote](https://github.com/Matgenix/jobflow-remote) from 0.1.3 to 0.1.4.
Release notes

Sourced from jobflow-remote's releases.

v0.1.4

Bug fix release. See PR Matgenix/jobflow-remote#177 for details. Prevents insertion of jobs/flows with the same uuid. Users of previous versions are encouraged to upgrade and run jf admin index rebuild to regenerate the indexes in the queue collection.

Changelog

v0.1.4 (2024-09-13)

Full Changelog

Closed issues:

  • Remote errors in interactive mode when larger workflows are run #174
  • Add --query (or --worker) flag to jf job rerun/retry #170

Merged pull requests:

  • Bugfix: improve collection indexes to prevent duplications #177 (gpetretto)
  • Add --worker and --query option in CLI #171 (gpetretto)

* This Changelog was automatically generated by github_changelog_generator

Changelog

Sourced from jobflow-remote's changelog.

v0.1.4 (2024-09-13)

Full Changelog

Closed issues:

  • Remote errors in interactive mode when larger workflows are run #174
  • Add --query (or --worker) flag to jf job rerun/retry #170

Merged pull requests:

  • Bugfix: improve collection indexes to prevent duplications #177 (gpetretto)
  • Add --worker and --query option in CLI #171 (gpetretto)
Commits
  • 8df1979 Release v0.1.4
  • 479c8f2 Bump rich from 13.8.0 to 13.8.1
  • ed6cead Bump pydantic from 2.8.2 to 2.9.1
  • eeada99 fix linting
  • 987ae25 improve message and comments
  • ebd890c improve collection indexes to prevent duplications
  • 90e42fd fix build job query
  • 6bc291e --worker and --query option to filter on jobs operations
  • See full diff in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jobflow-remote&package-manager=pip&previous-version=0.1.3&new-version=0.1.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/requirements-jobflow.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements-jobflow.txt b/tests/requirements-jobflow.txt index 356a7dbc18..87f9005461 100644 --- a/tests/requirements-jobflow.txt +++ b/tests/requirements-jobflow.txt @@ -1,3 +1,3 @@ jobflow==0.1.18 -jobflow-remote==0.1.3 +jobflow-remote==0.1.4 fireworks==2.0.3 From 6d272c5bc759ac45861cb95c536f7bb04a8225c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:58:29 +0000 Subject: [PATCH 04/12] Bump parsl[monitoring] from 2024.9.2 to 2024.9.16 (#2465) Bumps [parsl[monitoring]](https://github.com/Parsl/parsl) from 2024.9.2 to 2024.9.16.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=parsl[monitoring]&package-manager=pip&previous-version=2024.9.2&new-version=2024.9.16)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/requirements-parsl.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements-parsl.txt b/tests/requirements-parsl.txt index cea1e7f09b..c7fc597d0a 100644 --- a/tests/requirements-parsl.txt +++ b/tests/requirements-parsl.txt @@ -1 +1 @@ -parsl[monitoring]==2024.9.2 +parsl[monitoring]==2024.9.16 From a9f03d243148c79048bf972511a949003d8f6c0a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:58:38 +0000 Subject: [PATCH 05/12] Bump prefect[dask] from 3.0.1 to 3.0.2 (#2469) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [prefect[dask]](https://github.com/PrefectHQ/prefect) from 3.0.1 to 3.0.2.
Release notes

Sourced from prefect[dask]'s releases.

3.0.2: Groundlog day, tomorrow finally came

3.0.2:

New Features 🎉

Enhancements ➕➕

Bug Fixes 🐞

Integrations & Dependencies 🤝

Development & Tidiness 🧹

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prefect[dask]&package-manager=pip&previous-version=3.0.1&new-version=3.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/requirements-prefect.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements-prefect.txt b/tests/requirements-prefect.txt index 7be0490093..96bdafb7b2 100644 --- a/tests/requirements-prefect.txt +++ b/tests/requirements-prefect.txt @@ -1,2 +1,2 @@ dask-jobqueue==0.9.0 -prefect[dask]==3.0.1 +prefect[dask]==3.0.2 From 7d14947b4ff5e85b3a034370532b7d689bf2874e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:58:43 +0000 Subject: [PATCH 06/12] Bump pydantic-settings from 2.4.0 to 2.5.2 (#2467) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.4.0 to 2.5.2.
Release notes

Sourced from pydantic-settings's releases.

v2.5.2

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.5.1...v2.5.2

v2.5.1

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.5.0...v2.5.1

v2.5.0

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.4.0...v2.5.0

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pydantic-settings&package-manager=pip&previous-version=2.4.0&new-version=2.5.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements.txt b/tests/requirements.txt index 523395b630..58ca401fa6 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -6,7 +6,7 @@ monty==2024.7.30 numpy==1.26.4 psutil==5.9.8 pydantic==2.9.1 -pydantic-settings==2.4.0 +pydantic-settings==2.5.2 pymatgen==2024.7.18 ruamel.yaml==0.18.6 typer==0.12.5 From fd1b5f6e0e347ac753a309a52d135c0762bb5174 Mon Sep 17 00:00:00 2001 From: "Andrew S. Rosen" Date: Tue, 17 Sep 2024 11:04:47 -0400 Subject: [PATCH 07/12] Update requirements-covalent.txt --- tests/requirements-covalent.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/requirements-covalent.txt b/tests/requirements-covalent.txt index b9e5b9ceba..ebdd147ed7 100644 --- a/tests/requirements-covalent.txt +++ b/tests/requirements-covalent.txt @@ -1,4 +1,3 @@ covalent==0.235.1rc0 covalent-cloud==0.73.0 -covalent-hpc-plugin==0.0.8 covalent-slurm-plugin==0.18.0 From 3785be7d0173af59000efce4c684e18c3448d6c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 11:06:18 -0400 Subject: [PATCH 08/12] Bump dask[distributed] from 2024.8.2 to 2024.9.0 (#2472) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [dask[distributed]](https://github.com/dask/dask) from 2024.8.2 to 2024.9.0.
Release notes

Sourced from dask[distributed]'s releases.

2024.9.0

Changes

See the Changelog for more information.

Commits
  • ae250c9 bump version to 2024.9.0
  • 8918954 Revert "Improve normalize_chunks calculation for "auto" setting" (#11385)
  • 18124a5 Bump peter-evans/create-pull-request from 6 to 7 (#11380)
  • 863a049 Add a Task class to replace tuples for task specification (#11248)
  • a6d0bdc Reduce overhead in tokenize (#11373)
  • 247ad00 Improve normalize_chunks calculation for "auto" setting (#11354)
  • a746826 Bump bokeh minimum version to 3.1.0 (#11375)
  • 31d57d3 Move tokenize to dedicated submodule (#11371)
  • 4be4880 Ensure process_runnables is not too eager in the presence of multiple splits ...
  • 0bf3075 Use np.min_scalar_type in shuffle (#11369)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dask[distributed]&package-manager=pip&previous-version=2024.8.2&new-version=2024.9.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/requirements-dask.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements-dask.txt b/tests/requirements-dask.txt index 682bd78af9..2b6394ba39 100644 --- a/tests/requirements-dask.txt +++ b/tests/requirements-dask.txt @@ -1,2 +1,2 @@ -dask[distributed]==2024.8.2 +dask[distributed]==2024.9.0 dask-jobqueue==0.9.0 From 7205e05db723982e393d1e1f7bae012a6ab45c71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 11:06:25 -0400 Subject: [PATCH 09/12] Bump phonopy from 2.27.0 to 2.28.0 (#2471) Bumps [phonopy](https://github.com/phonopy/phonopy) from 2.27.0 to 2.28.0.
Changelog

Sourced from phonopy's changelog.

Sep-12-2024: Version 2.28.0

  • Maintenance release including minor fixes and updates.
Commits
  • 46dda96 Merge branch 'develop'
  • 6aafd9c Merge pull request #424 from phonopy/release
  • 4be79b4 Set version 2.28.0
  • 7e45094 Merge branch 'develop' of github.com:phonopy/phonopy into develop
  • f7e1208 Simplify get_dot_access_dataset
  • 74c1126 Merge pull request #422 from phonopy/pre-commit-ci-update-config
  • 35c230f [pre-commit.ci] pre-commit autoupdate
  • 360a14b Minor fix of documentation
  • 4189bb0 Merge pull request #421 from phonopy/pypolymlp
  • e59ebdb Implement pypolymlp CUI interface
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=phonopy&package-manager=pip&previous-version=2.27.0&new-version=2.28.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/requirements-phonons.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/requirements-phonons.txt b/tests/requirements-phonons.txt index 96d65aec02..0fa9b7944b 100644 --- a/tests/requirements-phonons.txt +++ b/tests/requirements-phonons.txt @@ -1,2 +1,2 @@ -phonopy==2.27.0 +phonopy==2.28.0 seekpath==2.1.0 From 9a255d5a43cdc1e58c206c07de7e9e3971570a07 Mon Sep 17 00:00:00 2001 From: "Andrew S. Rosen" Date: Tue, 17 Sep 2024 11:08:20 -0400 Subject: [PATCH 10/12] Update CHANGELOG.md --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b6ca2e3bc..9d35ec903c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project generally adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.11.5] + +### Added + +- Added support for atomate2>=0.0.15 + +### Changed + +- The minimum supported Python version is now 3.10 in alignment with Pymatgen + +## [0.11.4] + +### Changed + +- Put a `<=` version pin on Atomate2 to resolve upstream breaking change + ## [0.11.3] ### Added From 306cc4009c6cc39d86d79c0b89c03f0afff6b16b Mon Sep 17 00:00:00 2001 From: "Andrew S. Rosen" Date: Tue, 17 Sep 2024 11:08:31 -0400 Subject: [PATCH 11/12] Update pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 66e8895f4a..d7f63a9daa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "quacc" description="A platform to enable high-throughput, database-driven quantum chemistry and computational materials science" -version = "0.11.4" +version = "0.11.5" readme = "README.md" license = { text = "BSD-3" } authors = [{ name = "Andrew S. Rosen", email = "asrosen@princeton.edu" }] From 4c15a3c1ab0f85311b3fb41242700d2eb5b2781e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 11:15:51 -0400 Subject: [PATCH 12/12] Bump pymatgen from 2024.7.18 to 2024.9.17 (#2470) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [pymatgen](https://github.com/materialsproject/pymatgen) from 2024.7.18 to 2024.9.17.
Release notes

Sourced from pymatgen's releases.

v2024.9.17

  • Emergency release to fix broken phase diagram plotting due to completely unnecessary refactoring. (Thanks @​yang-ruoxi for fixing.)

v2024.9.10

💥 Breaking: NumPy/Cython integer type changed from np.long/np.int_ to int64 on Windows to align with NumPy 2.x, changing the default integer type to int64 on Windows 64-bit systems in favor of the platform-dependent np.int_ type. Recommendation: Please explicitly declare dtype=np.int64 when initializing a NumPy array if it's passed to a Cythonized pymatgen function like find_points_in_spheres. You may also want to test downstream packages with NumPy 1.x on Windows in CI pipelines.

🛠 Enhancements

🐛 Bug Fixes

💥 Breaking Changes

📖 Documentation

🧹 House-Keeping

🚀 Performance

🚧 CI

... (truncated)

Changelog

Sourced from pymatgen's changelog.

v2024.9.17

  • Emergency release to fix broken phase diagram plotting due to completely unnecessary refactoring. (Thanks @​yang-ruoxi for fixing.)

v2024.9.10

💥 Breaking: NumPy/Cython integer type changed from np.long/np.int_ to int64 on Windows to align with NumPy 2.x, changing the default integer type to int64 on Windows 64-bit systems in favor of the platform-dependent np.int_ type. Recommendation: Please explicitly declare dtype=np.int64 when initializing a NumPy array if it's passed to a Cythonized pymatgen function like find_points_in_spheres. You may also want to test downstream packages with NumPy 1.x on Windows in CI pipelines.

🛠 Enhancements

🐛 Bug Fixes

💥 Breaking Changes

📖 Documentation

🧹 House-Keeping

🚀 Performance

🚧 CI

... (truncated)

Commits
  • 150f816 Update docs
  • b373410 Updated changelog.
  • 96b3284 fix phase diagram break from 41e6d99 (#4070)
  • ebfc7a0 improve and test PmgVaspPspDirError msg in PotcarSingle.from_symbol_and_funct...
  • 60464fd Fix all ruff DOC202 (#4067)
  • 7743ac7 (Not) Use setup-uv in CI tests workflow (#4063)
  • 6bb2938 Fix lll_reduce for slab generation (#3927)
  • 1ff1ba5 Use distinct names for artifacts (#4059)
  • 48e7c98 fix cibuildwheel: No build identifiers selected: BuildSelector(build_config='...
  • c469dd8 update docs/CHANGES.md with notes for v2024.9.10 and v2024.8.9
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pymatgen&package-manager=pip&previous-version=2024.7.18&new-version=2024.9.17)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
--------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Andrew S. Rosen Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .github/workflows/tests.yaml | 4 ++-- pyproject.toml | 3 +-- src/quacc/calculators/vasp/vasp.py | 2 +- src/quacc/recipes/emt/defects.py | 3 ++- src/quacc/recipes/emt/elastic.py | 3 ++- src/quacc/recipes/emt/phonons.py | 3 ++- src/quacc/recipes/emt/slabs.py | 3 ++- src/quacc/recipes/espresso/_base.py | 2 +- src/quacc/recipes/espresso/bands.py | 3 ++- src/quacc/recipes/espresso/dos.py | 3 ++- src/quacc/recipes/espresso/phonons.py | 3 ++- src/quacc/recipes/mlp/phonons.py | 3 ++- src/quacc/recipes/tblite/phonons.py | 3 ++- src/quacc/recipes/vasp/mp.py | 3 ++- src/quacc/recipes/vasp/slabs.py | 3 ++- src/quacc/runners/ase.py | 7 ++++--- src/quacc/runners/prep.py | 2 +- src/quacc/settings.py | 3 ++- src/quacc/types.py | 7 ++++--- src/quacc/wflow_tools/customizers.py | 9 +++++---- src/quacc/wflow_tools/decorators.py | 3 ++- src/quacc/wflow_tools/job_patterns.py | 3 ++- src/quacc/wflow_tools/prefect_utils.py | 2 +- tests/requirements.txt | 2 +- 24 files changed, 49 insertions(+), 33 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 171e6e7040..f19e1b6edf 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -13,11 +13,11 @@ jobs: strategy: fail-fast: true matrix: - python-version: ["3.9", "3.12"] + python-version: ["3.10", "3.12"] os: [ubuntu-latest, windows-latest] exclude: - os: windows-latest - python-version: "3.9" + python-version: "3.10" runs-on: ${{ matrix.os }} defaults: diff --git a/pyproject.toml b/pyproject.toml index d7f63a9daa..cbd7434649 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,6 @@ classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", @@ -25,7 +24,7 @@ classifiers = [ "Operating System :: Unix", "Operating System :: MacOS", ] -requires-python = ">=3.9" +requires-python = ">=3.10" dependencies = [ "ase>=3.23.0", # for Atoms object and calculators "custodian>=2024.3.12", # for automated error corrections diff --git a/src/quacc/calculators/vasp/vasp.py b/src/quacc/calculators/vasp/vasp.py index f3a1a00c3a..ecb9587303 100644 --- a/src/quacc/calculators/vasp/vasp.py +++ b/src/quacc/calculators/vasp/vasp.py @@ -232,7 +232,7 @@ def _cleanup_params(self) -> None: # Allow the user to use setups='mysetups.yaml' to load in a custom # setups from a YAML file if ( - isinstance(self.user_calc_params.get("setups"), (str, Path)) + isinstance(self.user_calc_params.get("setups"), str | Path) and self.user_calc_params["setups"] not in ase_setups.setups_defaults ): self.user_calc_params["setups"] = load_vasp_yaml_calc( diff --git a/src/quacc/recipes/emt/defects.py b/src/quacc/recipes/emt/defects.py index f9734ae5a4..591a77063e 100644 --- a/src/quacc/recipes/emt/defects.py +++ b/src/quacc/recipes/emt/defects.py @@ -21,7 +21,8 @@ if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/emt/elastic.py b/src/quacc/recipes/emt/elastic.py index 3d1980a748..3f2e9dbbb1 100644 --- a/src/quacc/recipes/emt/elastic.py +++ b/src/quacc/recipes/emt/elastic.py @@ -10,7 +10,8 @@ from quacc.wflow_tools.customizers import customize_funcs if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/emt/phonons.py b/src/quacc/recipes/emt/phonons.py index 97f87c0e37..2a111bb1f9 100644 --- a/src/quacc/recipes/emt/phonons.py +++ b/src/quacc/recipes/emt/phonons.py @@ -10,7 +10,8 @@ from quacc.wflow_tools.customizers import customize_funcs if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/emt/slabs.py b/src/quacc/recipes/emt/slabs.py index 830e0e7c35..e0c20b3fca 100644 --- a/src/quacc/recipes/emt/slabs.py +++ b/src/quacc/recipes/emt/slabs.py @@ -10,7 +10,8 @@ from quacc.wflow_tools.customizers import customize_funcs if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/espresso/_base.py b/src/quacc/recipes/espresso/_base.py index 0937926bdf..665a504832 100644 --- a/src/quacc/recipes/espresso/_base.py +++ b/src/quacc/recipes/espresso/_base.py @@ -258,7 +258,7 @@ def prepare_copy( dict Dictionary of files to copy. """ - if isinstance(copy_files, (str, Path)): + if isinstance(copy_files, str | Path): copy_files = [copy_files] if isinstance(copy_files, list): diff --git a/src/quacc/recipes/espresso/bands.py b/src/quacc/recipes/espresso/bands.py index 2c7e7c400b..887a0cd553 100644 --- a/src/quacc/recipes/espresso/bands.py +++ b/src/quacc/recipes/espresso/bands.py @@ -18,7 +18,8 @@ from quacc.wflow_tools.customizers import customize_funcs if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/espresso/dos.py b/src/quacc/recipes/espresso/dos.py index 534bed6f72..c343a45bdf 100644 --- a/src/quacc/recipes/espresso/dos.py +++ b/src/quacc/recipes/espresso/dos.py @@ -12,7 +12,8 @@ from quacc.wflow_tools.customizers import customize_funcs if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/espresso/phonons.py b/src/quacc/recipes/espresso/phonons.py index 60b0608c77..512cdb8b60 100644 --- a/src/quacc/recipes/espresso/phonons.py +++ b/src/quacc/recipes/espresso/phonons.py @@ -23,7 +23,8 @@ if TYPE_CHECKING: from collections import UserDict - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from quacc.types import ( EspressoPhononDosSchema, diff --git a/src/quacc/recipes/mlp/phonons.py b/src/quacc/recipes/mlp/phonons.py index 4d707af4d2..87f67225b6 100644 --- a/src/quacc/recipes/mlp/phonons.py +++ b/src/quacc/recipes/mlp/phonons.py @@ -16,7 +16,8 @@ has_seekpath = bool(find_spec("seekpath")) if TYPE_CHECKING: - from typing import Any, Callable, Literal + from collections.abc import Callable + from typing import Any, Literal from ase.atoms import Atoms diff --git a/src/quacc/recipes/tblite/phonons.py b/src/quacc/recipes/tblite/phonons.py index 6268971332..d6bd43c775 100644 --- a/src/quacc/recipes/tblite/phonons.py +++ b/src/quacc/recipes/tblite/phonons.py @@ -17,7 +17,8 @@ has_seekpath = bool(find_spec("seekpath")) if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/vasp/mp.py b/src/quacc/recipes/vasp/mp.py index 9ec1988df9..5cd39f36c7 100644 --- a/src/quacc/recipes/vasp/mp.py +++ b/src/quacc/recipes/vasp/mp.py @@ -31,7 +31,8 @@ ) if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/recipes/vasp/slabs.py b/src/quacc/recipes/vasp/slabs.py index a545611708..5acf90e418 100644 --- a/src/quacc/recipes/vasp/slabs.py +++ b/src/quacc/recipes/vasp/slabs.py @@ -10,7 +10,8 @@ from quacc.wflow_tools.customizers import customize_funcs if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any from ase.atoms import Atoms diff --git a/src/quacc/runners/ase.py b/src/quacc/runners/ase.py index 0ec3107521..4157c87085 100644 --- a/src/quacc/runners/ase.py +++ b/src/quacc/runners/ase.py @@ -5,7 +5,7 @@ from importlib.util import find_spec from logging import getLogger from shutil import copy, copytree -from typing import TYPE_CHECKING, Callable +from typing import TYPE_CHECKING import numpy as np from ase.calculators import calculator @@ -34,6 +34,7 @@ if TYPE_CHECKING: + from collections.abc import Callable from pathlib import Path from typing import Any @@ -201,7 +202,7 @@ def run_opt( # Handle optimizer kwargs if ( - issubclass(optimizer, (SciPyOptimizer, MolecularDynamics)) + issubclass(optimizer, SciPyOptimizer | MolecularDynamics) or optimizer.__name__ == "IRC" ): # https://gitlab.com/ase/ase/-/issues/1476 @@ -225,7 +226,7 @@ def run_opt( full_run_kwargs.pop("fmax") try: with traj, optimizer(self.atoms, **merged_optimizer_kwargs) as dyn: - if issubclass(optimizer, (SciPyOptimizer, MolecularDynamics)): + if issubclass(optimizer, SciPyOptimizer | MolecularDynamics): # https://gitlab.coms/ase/ase/-/issues/1475 # https://gitlab.com/ase/ase/-/issues/1497 dyn.run(**full_run_kwargs) diff --git a/src/quacc/runners/prep.py b/src/quacc/runners/prep.py index 2c12193878..6a74a8345c 100644 --- a/src/quacc/runners/prep.py +++ b/src/quacc/runners/prep.py @@ -74,7 +74,7 @@ def calc_setup( # Copy files to tmpdir and decompress them if needed if copy_files: - if isinstance(copy_files, (str, Path)): + if isinstance(copy_files, str | Path): copy_files = {copy_files: "*"} for source_directory, filenames in copy_files.items(): diff --git a/src/quacc/settings.py b/src/quacc/settings.py index da653b505c..327e44376c 100644 --- a/src/quacc/settings.py +++ b/src/quacc/settings.py @@ -16,7 +16,8 @@ from pydantic_settings import BaseSettings, SettingsConfigDict if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any _DEFAULT_CONFIG_FILE_PATH = Path("~", ".quacc.yaml").expanduser().resolve() diff --git a/src/quacc/types.py b/src/quacc/types.py index a6dddf0724..f9db8555ef 100644 --- a/src/quacc/types.py +++ b/src/quacc/types.py @@ -16,9 +16,10 @@ class DefaultSetting(BaseSettings): if TYPE_CHECKING: + from collections.abc import Callable from datetime import datetime from pathlib import Path - from typing import Any, Callable, Literal, Union + from typing import Any, Literal from ase.atoms import Atoms from ase.md.md import MolecularDynamics @@ -41,8 +42,8 @@ class DefaultSetting(BaseSettings): # ----------- File handling ----------- - Filenames = Union[str, Path, list[Union[str, Path]]] - SourceDirectory = Union[str, Path] + Filenames = str | Path | list[str | Path] + SourceDirectory = str | Path # ----------- k-point handling ----------- diff --git a/src/quacc/wflow_tools/customizers.py b/src/quacc/wflow_tools/customizers.py index 134fcd534c..d7fcb8cdbc 100644 --- a/src/quacc/wflow_tools/customizers.py +++ b/src/quacc/wflow_tools/customizers.py @@ -9,7 +9,8 @@ from quacc.utils.dicts import recursive_dict_merge if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any def strip_decorator(func: Callable) -> Callable: @@ -66,7 +67,7 @@ def strip_decorator(func: Callable) -> Callable: from prefect import Flow as PrefectFlow from prefect import Task - if isinstance(func, (Task, PrefectFlow)): + if isinstance(func, Task | PrefectFlow): func = func.fn elif hasattr(func, "__wrapped__"): func = func.__wrapped__ @@ -182,9 +183,9 @@ def customize_funcs( decorators = decorators or {} updated_funcs = [] - if not isinstance(names, (list, tuple)): + if not isinstance(names, list | tuple): names = [names] - if not isinstance(funcs, (list, tuple)): + if not isinstance(funcs, list | tuple): funcs = [funcs] if "all" in names: diff --git a/src/quacc/wflow_tools/decorators.py b/src/quacc/wflow_tools/decorators.py index f7a9a78974..1290a34977 100644 --- a/src/quacc/wflow_tools/decorators.py +++ b/src/quacc/wflow_tools/decorators.py @@ -2,8 +2,9 @@ from __future__ import annotations +from collections.abc import Callable from functools import partial, wraps -from typing import Any, Callable +from typing import Any from quacc.settings import change_settings_wrap diff --git a/src/quacc/wflow_tools/job_patterns.py b/src/quacc/wflow_tools/job_patterns.py index dfb4544b3a..8445a47f2c 100644 --- a/src/quacc/wflow_tools/job_patterns.py +++ b/src/quacc/wflow_tools/job_patterns.py @@ -7,7 +7,8 @@ from quacc.wflow_tools.decorators import job if TYPE_CHECKING: - from typing import Any, Callable + from collections.abc import Callable + from typing import Any @job diff --git a/src/quacc/wflow_tools/prefect_utils.py b/src/quacc/wflow_tools/prefect_utils.py index c4e4512e00..6fbf827222 100644 --- a/src/quacc/wflow_tools/prefect_utils.py +++ b/src/quacc/wflow_tools/prefect_utils.py @@ -56,7 +56,7 @@ def _collect_futures(futures, expr, context): result = result.get() results.append(result) - states_by_future = dict(zip(futures, results)) + states_by_future = dict(zip(futures, results, strict=False)) def replace_futures_with_states(expr, context): # Expressions inside quotes should not be modified diff --git a/tests/requirements.txt b/tests/requirements.txt index 58ca401fa6..d1746ed8dc 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -7,6 +7,6 @@ numpy==1.26.4 psutil==5.9.8 pydantic==2.9.1 pydantic-settings==2.5.2 -pymatgen==2024.7.18 +pymatgen==2024.9.17 ruamel.yaml==0.18.6 typer==0.12.5