From ac47e44f26a996183a085c5b145b418c4c093662 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 06:48:11 +0100 Subject: [PATCH 01/12] [pre-commit.ci] pre-commit autoupdate (#510) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.7.4 → v0.8.0](https://github.com/astral-sh/ruff-pre-commit/compare/v0.7.4...v0.8.0) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f2cbf888..0d7008b6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.7.4 + rev: v0.8.0 hooks: - id: ruff name: ruff lint From 9a8de67de314f69f2b6cf035da8362211c2a1890 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:31:39 +0100 Subject: [PATCH 02/12] Bump ipython from 8.29.0 to 8.30.0 (#511) * Bump ipython from 8.29.0 to 8.30.0 Bumps [ipython](https://github.com/ipython/ipython) from 8.29.0 to 8.30.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/8.29.0...8.30.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * [dependabot skip] Update environment --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pyironrunner --- .ci_support/environment-mpich.yml | 2 +- .ci_support/environment-openmpi.yml | 2 +- .ci_support/environment-win.yml | 2 +- binder/environment.yml | 2 +- pyproject.toml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.ci_support/environment-mpich.yml b/.ci_support/environment-mpich.yml index 2031c9de..07d4adb4 100644 --- a/.ci_support/environment-mpich.yml +++ b/.ci_support/environment-mpich.yml @@ -11,6 +11,6 @@ dependencies: - matplotlib =3.9.2 - networkx =3.4.2 - pygraphviz =1.14 -- ipython =8.29.0 +- ipython =8.30.0 - pysqa =0.2.2 - setuptools =75.1.0 diff --git a/.ci_support/environment-openmpi.yml b/.ci_support/environment-openmpi.yml index e58d7df8..2f9e330a 100644 --- a/.ci_support/environment-openmpi.yml +++ b/.ci_support/environment-openmpi.yml @@ -12,5 +12,5 @@ dependencies: - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 -- ipython =8.29.0 +- ipython =8.30.0 - setuptools =75.1.0 diff --git a/.ci_support/environment-win.yml b/.ci_support/environment-win.yml index 142bb419..9abcee3f 100644 --- a/.ci_support/environment-win.yml +++ b/.ci_support/environment-win.yml @@ -11,5 +11,5 @@ dependencies: - matplotlib =3.9.2 - networkx =3.4.2 - pygraphviz =1.14 -- ipython =8.29.0 +- ipython =8.30.0 - setuptools =75.1.0 diff --git a/binder/environment.yml b/binder/environment.yml index a598ce5e..8a11e290 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -15,4 +15,4 @@ dependencies: - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 -- ipython =8.29.0 +- ipython =8.30.0 diff --git a/pyproject.toml b/pyproject.toml index a312b9b5..bf14086e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ graph = [ "pygraphviz==1.14", "matplotlib==3.9.2", "networkx==3.4.2", - "ipython==8.29.0", + "ipython==8.30.0", ] mpi = ["mpi4py==4.0.1"] submission = [ @@ -55,7 +55,7 @@ all = [ "pygraphviz==1.14", "matplotlib==3.9.2", "networkx==3.4.2", - "ipython==8.29.0", + "ipython==8.30.0", ] [tool.setuptools.packages.find] From 23eb02aaaa183cf2aa941ddc207f2a4b8c94bf0b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 18:43:11 -0500 Subject: [PATCH 03/12] [pre-commit.ci] pre-commit autoupdate (#514) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.8.0 → v0.8.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.0...v0.8.1) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0d7008b6..6be1447e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.0 + rev: v0.8.1 hooks: - id: ruff name: ruff lint From 8c74ce85d6d5d601289ec11704936f2ffbbe514e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 19:26:37 -0500 Subject: [PATCH 04/12] Bump matplotlib from 3.9.2 to 3.9.3 (#513) * Bump matplotlib from 3.9.2 to 3.9.3 Bumps [matplotlib](https://github.com/matplotlib/matplotlib) from 3.9.2 to 3.9.3. - [Release notes](https://github.com/matplotlib/matplotlib/releases) - [Commits](https://github.com/matplotlib/matplotlib/compare/v3.9.2...v3.9.3) --- updated-dependencies: - dependency-name: matplotlib dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * [dependabot skip] Update environment --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pyironrunner --- .ci_support/environment-mpich.yml | 2 +- .ci_support/environment-openmpi.yml | 2 +- .ci_support/environment-win.yml | 2 +- binder/environment.yml | 2 +- pyproject.toml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.ci_support/environment-mpich.yml b/.ci_support/environment-mpich.yml index 07d4adb4..534f273e 100644 --- a/.ci_support/environment-mpich.yml +++ b/.ci_support/environment-mpich.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.2 +- matplotlib =3.9.3 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/.ci_support/environment-openmpi.yml b/.ci_support/environment-openmpi.yml index 2f9e330a..c6d3dee4 100644 --- a/.ci_support/environment-openmpi.yml +++ b/.ci_support/environment-openmpi.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.2 +- matplotlib =3.9.3 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/.ci_support/environment-win.yml b/.ci_support/environment-win.yml index 9abcee3f..cbf51a66 100644 --- a/.ci_support/environment-win.yml +++ b/.ci_support/environment-win.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.2 +- matplotlib =3.9.3 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/binder/environment.yml b/binder/environment.yml index 8a11e290..6c7a4fa5 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -11,7 +11,7 @@ dependencies: - flux-pmix =0.5.0 - versioneer =0.28 - h5py =3.12.1 -- matplotlib =3.9.2 +- matplotlib =3.9.3 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/pyproject.toml b/pyproject.toml index bf14086e..69076846 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ Repository = "https://github.com/pyiron/executorlib" cache = ["h5py==3.12.1"] graph = [ "pygraphviz==1.14", - "matplotlib==3.9.2", + "matplotlib==3.9.3", "networkx==3.4.2", "ipython==8.30.0", ] @@ -53,7 +53,7 @@ all = [ "pysqa==0.2.2", "h5py==3.12.1", "pygraphviz==1.14", - "matplotlib==3.9.2", + "matplotlib==3.9.3", "networkx==3.4.2", "ipython==8.30.0", ] From 32864a3951b595e6e3ea0050ee16b7fe3a925efb Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:07:50 -0800 Subject: [PATCH 05/12] [pre-commit.ci] pre-commit autoupdate (#515) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.8.1 → v0.8.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.1...v0.8.2) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6be1447e..6b467002 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.1 + rev: v0.8.2 hooks: - id: ruff name: ruff lint From 27207d87abd73d4cc3ae35e69c9cc598c919851d Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 9 Dec 2024 14:39:39 -0800 Subject: [PATCH 06/12] Create automerge.yml (#516) --- .github/workflows/automerge.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/automerge.yml diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml new file mode 100644 index 00000000..95fce378 --- /dev/null +++ b/.github/workflows/automerge.yml @@ -0,0 +1,17 @@ +name: Bot auto-merge +on: pull_request # yamllint disable-line rule:truthy + +permissions: + contents: write + pull-requests: write + +jobs: + autobot: + runs-on: ubuntu-latest + if: (github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'pre-commit-ci[bot]') && github.repository == 'pyiron/executorlib' + steps: + - name: Enable auto-merge for bot PRs + run: gh pr merge --auto --squash "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GH_TOKEN: ${{secrets.GITHUB_TOKEN}} From d6a0268697e058a8c1615715d8b68f242bb2d996 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Thu, 12 Dec 2024 08:54:06 -0800 Subject: [PATCH 07/12] Update automerge.yml --- .github/workflows/automerge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 95fce378..73689b4b 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -8,7 +8,7 @@ permissions: jobs: autobot: runs-on: ubuntu-latest - if: (github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'pre-commit-ci[bot]') && github.repository == 'pyiron/executorlib' + if: (github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'pre-commit-ci[bot]') && github.event.pull_request.conclusion == 'success' && github.repository == 'pyiron/executorlib' steps: - name: Enable auto-merge for bot PRs run: gh pr merge --auto --squash "$PR_URL" From f1c4ffa9cfb5c81edf427f2573174459d4bc8789 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Thu, 12 Dec 2024 09:24:27 -0800 Subject: [PATCH 08/12] Update automerge.yml --- .github/workflows/automerge.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 73689b4b..8c0039b2 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -1,5 +1,9 @@ name: Bot auto-merge -on: pull_request # yamllint disable-line rule:truthy +on: + pull_request: # yamllint disable-line rule:truthy + workflow_run: + workflows: ["Benchmark", "Black", "Coverage", "Unittests-minimal", "Notebooks", "Pip check", "Unittest", "Unittests-flux-mpich", "Unittests-flux-openmpi", "Unittests-mpich", "Unittests-openmpi", "Unittests-msmpi", "Unittest Lower Bound"] + types: [completed] permissions: contents: write From 171a9794fda05db75edf536926fe0cf4a715d9c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 23:18:26 -0700 Subject: [PATCH 09/12] Bump matplotlib from 3.9.3 to 3.9.4 (#520) * Bump matplotlib from 3.9.3 to 3.9.4 Bumps [matplotlib](https://github.com/matplotlib/matplotlib) from 3.9.3 to 3.9.4. - [Release notes](https://github.com/matplotlib/matplotlib/releases) - [Commits](https://github.com/matplotlib/matplotlib/compare/v3.9.3...v3.9.4) --- updated-dependencies: - dependency-name: matplotlib dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * [dependabot skip] Update environment * Update automerge.yml * Update automerge.yml --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pyironrunner Co-authored-by: Jan Janssen --- .ci_support/environment-mpich.yml | 2 +- .ci_support/environment-openmpi.yml | 2 +- .ci_support/environment-win.yml | 2 +- .github/workflows/automerge.yml | 2 +- binder/environment.yml | 2 +- pyproject.toml | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.ci_support/environment-mpich.yml b/.ci_support/environment-mpich.yml index 534f273e..bb82319c 100644 --- a/.ci_support/environment-mpich.yml +++ b/.ci_support/environment-mpich.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.3 +- matplotlib =3.9.4 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/.ci_support/environment-openmpi.yml b/.ci_support/environment-openmpi.yml index c6d3dee4..8f687701 100644 --- a/.ci_support/environment-openmpi.yml +++ b/.ci_support/environment-openmpi.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.3 +- matplotlib =3.9.4 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/.ci_support/environment-win.yml b/.ci_support/environment-win.yml index cbf51a66..b772f12a 100644 --- a/.ci_support/environment-win.yml +++ b/.ci_support/environment-win.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.3 +- matplotlib =3.9.4 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index 8c0039b2..f5a034d9 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -2,7 +2,7 @@ name: Bot auto-merge on: pull_request: # yamllint disable-line rule:truthy workflow_run: - workflows: ["Benchmark", "Black", "Coverage", "Unittests-minimal", "Notebooks", "Pip check", "Unittest", "Unittests-flux-mpich", "Unittests-flux-openmpi", "Unittests-mpich", "Unittests-openmpi", "Unittests-msmpi", "Unittest Lower Bound"] + workflows: ["Benchmark", "Black", "Unittests-minimal", "Notebooks", "Pip check", "Unittests-flux-mpich", "Unittests-flux-openmpi", "Unittests-mpich", "Unittests-openmpi", "Unittests-msmpi", "Unittest Lower Bound"] types: [completed] permissions: diff --git a/binder/environment.yml b/binder/environment.yml index 6c7a4fa5..d84b9464 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -11,7 +11,7 @@ dependencies: - flux-pmix =0.5.0 - versioneer =0.28 - h5py =3.12.1 -- matplotlib =3.9.3 +- matplotlib =3.9.4 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/pyproject.toml b/pyproject.toml index 69076846..1263232c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ Repository = "https://github.com/pyiron/executorlib" cache = ["h5py==3.12.1"] graph = [ "pygraphviz==1.14", - "matplotlib==3.9.3", + "matplotlib==3.9.4", "networkx==3.4.2", "ipython==8.30.0", ] @@ -53,7 +53,7 @@ all = [ "pysqa==0.2.2", "h5py==3.12.1", "pygraphviz==1.14", - "matplotlib==3.9.3", + "matplotlib==3.9.4", "networkx==3.4.2", "ipython==8.30.0", ] From 4d7120e997121d7a424187fced70c42ac64c806b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:03:42 -0700 Subject: [PATCH 10/12] [pre-commit.ci] pre-commit autoupdate (#522) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.8.2 → v0.8.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.2...v0.8.3) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6b467002..cb6cca04 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.2 + rev: v0.8.3 hooks: - id: ruff name: ruff lint From baec2a123785eb76bf9c37c78fa4d02070233709 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:34:48 -0700 Subject: [PATCH 11/12] Bump matplotlib from 3.9.4 to 3.10.0 (#521) * Bump matplotlib from 3.9.4 to 3.10.0 Bumps [matplotlib](https://github.com/matplotlib/matplotlib) from 3.9.4 to 3.10.0. - [Release notes](https://github.com/matplotlib/matplotlib/releases) - [Commits](https://github.com/matplotlib/matplotlib/compare/v3.9.4...v3.10.0) --- updated-dependencies: - dependency-name: matplotlib dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * [dependabot skip] Update environment --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: pyironrunner Co-authored-by: Jan Janssen --- .ci_support/environment-mpich.yml | 2 +- .ci_support/environment-openmpi.yml | 2 +- .ci_support/environment-win.yml | 2 +- binder/environment.yml | 2 +- pyproject.toml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.ci_support/environment-mpich.yml b/.ci_support/environment-mpich.yml index bb82319c..cb9eece3 100644 --- a/.ci_support/environment-mpich.yml +++ b/.ci_support/environment-mpich.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.4 +- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/.ci_support/environment-openmpi.yml b/.ci_support/environment-openmpi.yml index 8f687701..8d33c18a 100644 --- a/.ci_support/environment-openmpi.yml +++ b/.ci_support/environment-openmpi.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.4 +- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/.ci_support/environment-win.yml b/.ci_support/environment-win.yml index b772f12a..8608bfaa 100644 --- a/.ci_support/environment-win.yml +++ b/.ci_support/environment-win.yml @@ -8,7 +8,7 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.9.4 +- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/binder/environment.yml b/binder/environment.yml index d84b9464..ada84da0 100644 --- a/binder/environment.yml +++ b/binder/environment.yml @@ -11,7 +11,7 @@ dependencies: - flux-pmix =0.5.0 - versioneer =0.28 - h5py =3.12.1 -- matplotlib =3.9.4 +- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/pyproject.toml b/pyproject.toml index 1263232c..032fc74c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ Repository = "https://github.com/pyiron/executorlib" cache = ["h5py==3.12.1"] graph = [ "pygraphviz==1.14", - "matplotlib==3.9.4", + "matplotlib==3.10.0", "networkx==3.4.2", "ipython==8.30.0", ] @@ -53,7 +53,7 @@ all = [ "pysqa==0.2.2", "h5py==3.12.1", "pygraphviz==1.14", - "matplotlib==3.9.4", + "matplotlib==3.10.0", "networkx==3.4.2", "ipython==8.30.0", ] From c3a0ae7279f65ad321538b4fff430ee7c0f81307 Mon Sep 17 00:00:00 2001 From: Jan Janssen Date: Mon, 16 Dec 2024 20:20:09 -0700 Subject: [PATCH 12/12] Add option to save graph as PNG (#523) * Add option to save graph as PNG * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove file after test --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .ci_support/environment-mpich.yml | 1 - .ci_support/environment-old.yml | 1 - .ci_support/environment-openmpi.yml | 1 - .ci_support/environment-win.yml | 1 - executorlib/__init__.py | 5 +++++ executorlib/interactive/executor.py | 15 +++++++++++++-- executorlib/standalone/plot.py | 19 ++++++++++++------- pyproject.toml | 6 ++++-- tests/test_dependencies_executor.py | 21 +++++++++++++++++++++ 9 files changed, 55 insertions(+), 15 deletions(-) diff --git a/.ci_support/environment-mpich.yml b/.ci_support/environment-mpich.yml index cb9eece3..4fc6c1a0 100644 --- a/.ci_support/environment-mpich.yml +++ b/.ci_support/environment-mpich.yml @@ -8,7 +8,6 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/.ci_support/environment-old.yml b/.ci_support/environment-old.yml index 0d6d5097..031d8291 100644 --- a/.ci_support/environment-old.yml +++ b/.ci_support/environment-old.yml @@ -8,7 +8,6 @@ dependencies: - mpi4py =3.1.4 - pyzmq =25.0.0 - h5py =3.6.0 -- matplotlib =3.5.3 - networkx =2.8.8 - ipython =7.33.0 - pygraphviz =1.10 diff --git a/.ci_support/environment-openmpi.yml b/.ci_support/environment-openmpi.yml index 8d33c18a..08788672 100644 --- a/.ci_support/environment-openmpi.yml +++ b/.ci_support/environment-openmpi.yml @@ -8,7 +8,6 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - pysqa =0.2.2 diff --git a/.ci_support/environment-win.yml b/.ci_support/environment-win.yml index 8608bfaa..1314027d 100644 --- a/.ci_support/environment-win.yml +++ b/.ci_support/environment-win.yml @@ -8,7 +8,6 @@ dependencies: - mpi4py =4.0.1 - pyzmq =26.2.0 - h5py =3.12.1 -- matplotlib =3.10.0 - networkx =3.4.2 - pygraphviz =1.14 - ipython =8.30.0 diff --git a/executorlib/__init__.py b/executorlib/__init__.py index 5e0a1c94..3409eb09 100644 --- a/executorlib/__init__.py +++ b/executorlib/__init__.py @@ -62,6 +62,7 @@ class Executor: refresh_rate (float): Set the refresh rate in seconds, how frequently the input queue is checked. plot_dependency_graph (bool): Plot the dependencies of multiple future objects without executing them. For debugging purposes and to get an overview of the specified dependencies. + plot_dependency_graph_filename (str): Name of the file to store the plotted graph in. Examples: ``` @@ -101,6 +102,7 @@ def __init__( disable_dependencies: bool = False, refresh_rate: float = 0.01, plot_dependency_graph: bool = False, + plot_dependency_graph_filename: Optional[str] = None, ): # Use __new__() instead of __init__(). This function is only implemented to enable auto-completion. pass @@ -122,6 +124,7 @@ def __new__( disable_dependencies: bool = False, refresh_rate: float = 0.01, plot_dependency_graph: bool = False, + plot_dependency_graph_filename: Optional[str] = None, ): """ Instead of returning a executorlib.Executor object this function returns either a executorlib.mpi.PyMPIExecutor, @@ -167,6 +170,7 @@ def __new__( refresh_rate (float): Set the refresh rate in seconds, how frequently the input queue is checked. plot_dependency_graph (bool): Plot the dependencies of multiple future objects without executing them. For debugging purposes and to get an overview of the specified dependencies. + plot_dependency_graph_filename (str): Name of the file to store the plotted graph in. """ default_resource_dict = { @@ -216,6 +220,7 @@ def __new__( init_function=init_function, refresh_rate=refresh_rate, plot_dependency_graph=plot_dependency_graph, + plot_dependency_graph_filename=plot_dependency_graph_filename, ) else: _check_pysqa_config_directory(pysqa_config_directory=pysqa_config_directory) diff --git a/executorlib/interactive/executor.py b/executorlib/interactive/executor.py index 5a31f1e6..ed32d31f 100644 --- a/executorlib/interactive/executor.py +++ b/executorlib/interactive/executor.py @@ -42,6 +42,7 @@ class ExecutorWithDependencies(ExecutorBase): Args: refresh_rate (float, optional): The refresh rate for updating the executor queue. Defaults to 0.01. plot_dependency_graph (bool, optional): Whether to generate and plot the dependency graph. Defaults to False. + plot_dependency_graph_filename (str): Name of the file to store the plotted graph in. *args: Variable length argument list. **kwargs: Arbitrary keyword arguments. @@ -49,6 +50,7 @@ class ExecutorWithDependencies(ExecutorBase): _future_hash_dict (Dict[str, Future]): A dictionary mapping task hash to future object. _task_hash_dict (Dict[str, Dict]): A dictionary mapping task hash to task dictionary. _generate_dependency_graph (bool): Whether to generate the dependency graph. + _generate_dependency_graph (str): Name of the file to store the plotted graph in. """ @@ -57,6 +59,7 @@ def __init__( *args: Any, refresh_rate: float = 0.01, plot_dependency_graph: bool = False, + plot_dependency_graph_filename: Optional[str] = None, **kwargs: Any, ) -> None: super().__init__(max_cores=kwargs.get("max_cores", None)) @@ -75,7 +78,11 @@ def __init__( ) self._future_hash_dict = {} self._task_hash_dict = {} - self._generate_dependency_graph = plot_dependency_graph + self._plot_dependency_graph_filename = plot_dependency_graph_filename + if plot_dependency_graph_filename is None: + self._generate_dependency_graph = plot_dependency_graph + else: + self._generate_dependency_graph = True def submit( self, @@ -142,7 +149,11 @@ def __exit__( v: k for k, v in self._future_hash_dict.items() }, ) - return draw(node_lst=node_lst, edge_lst=edge_lst) + return draw( + node_lst=node_lst, + edge_lst=edge_lst, + filename=self._plot_dependency_graph_filename, + ) def create_executor( diff --git a/executorlib/standalone/plot.py b/executorlib/standalone/plot.py index 84fa2eb5..3c5cc252 100644 --- a/executorlib/standalone/plot.py +++ b/executorlib/standalone/plot.py @@ -1,5 +1,6 @@ +import os.path from concurrent.futures import Future -from typing import Tuple +from typing import Optional, Tuple import cloudpickle @@ -106,16 +107,15 @@ def convert_arg(arg, future_hash_inverse_dict): ) -def draw(node_lst: list, edge_lst: list): +def draw(node_lst: list, edge_lst: list, filename: Optional[str] = None): """ Draw the graph visualization of nodes and edges. Args: node_lst (list): List of nodes. edge_lst (list): List of edges. + filename (str): Name of the file to store the plotted graph in. """ - from IPython.display import SVG, display # noqa - import matplotlib.pyplot as plt # noqa import networkx as nx # noqa graph = nx.DiGraph() @@ -123,6 +123,11 @@ def draw(node_lst: list, edge_lst: list): graph.add_node(node["id"], label=node["name"], shape=node["shape"]) for edge in edge_lst: graph.add_edge(edge["start"], edge["end"], label=edge["label"]) - svg = nx.nx_agraph.to_agraph(graph).draw(prog="dot", format="svg") - display(SVG(svg)) - plt.show() + if filename is not None: + file_format = os.path.splitext(filename)[-1][1:] + with open(filename, "wb") as f: + f.write(nx.nx_agraph.to_agraph(graph).draw(prog="dot", format=file_format)) + else: + from IPython.display import SVG, display # noqa + + display(SVG(nx.nx_agraph.to_agraph(graph).draw(prog="dot", format="svg"))) diff --git a/pyproject.toml b/pyproject.toml index 032fc74c..588d668a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,10 @@ Repository = "https://github.com/pyiron/executorlib" cache = ["h5py==3.12.1"] graph = [ "pygraphviz==1.14", - "matplotlib==3.10.0", + "networkx==3.4.2", +] +graphnotebook = [ + "pygraphviz==1.14", "networkx==3.4.2", "ipython==8.30.0", ] @@ -53,7 +56,6 @@ all = [ "pysqa==0.2.2", "h5py==3.12.1", "pygraphviz==1.14", - "matplotlib==3.10.0", "networkx==3.4.2", "ipython==8.30.0", ] diff --git a/tests/test_dependencies_executor.py b/tests/test_dependencies_executor.py index d3ddeb9a..5c03b49a 100644 --- a/tests/test_dependencies_executor.py +++ b/tests/test_dependencies_executor.py @@ -1,4 +1,5 @@ from concurrent.futures import Future +import os import unittest from time import sleep from queue import Queue @@ -73,6 +74,26 @@ def test_executor_dependency_plot(self): self.assertEqual(len(nodes), 5) self.assertEqual(len(edges), 4) + @unittest.skipIf( + skip_graphviz_test, + "graphviz is not installed, so the plot_dependency_graph tests are skipped.", + ) + def test_executor_dependency_plot_filename(self): + graph_file = os.path.join(os.path.dirname(__file__), "test.png") + with Executor( + max_cores=1, + backend="local", + plot_dependency_graph=False, + plot_dependency_graph_filename=graph_file, + ) as exe: + cloudpickle_register(ind=1) + future_1 = exe.submit(add_function, 1, parameter_2=2) + future_2 = exe.submit(add_function, 1, parameter_2=future_1) + self.assertTrue(future_1.done()) + self.assertTrue(future_2.done()) + self.assertTrue(os.path.exists(graph_file)) + os.remove(graph_file) + def test_create_executor_error(self): with self.assertRaises(ValueError): create_executor(backend="toast", resource_dict={"cores": 1})