From 1cbb7fcd248168a1639feccb65f0254951a6c37e Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 08:59:16 -0400 Subject: [PATCH 01/27] increase CI sensitivity by testing both lowest-direct and highest dependency resolution strategy --- .github/workflows/testing.yml | 12 ++++++++---- pyproject.toml | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index d37830a4..671d9bc9 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -35,14 +35,18 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ['3.9', '3.10', '3.11'] + version: + - { python: "3.9", resolution: highest, extras: strict } + - { python: "3.10", resolution: lowest-direct, extras: strict } + - { python: "3.11", resolution: highest, extras: non-strict } + - { python: "3.12", resolution: lowest-direct, extras: non-strict } steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: ${{ matrix.python-version }} + python-version: ${{ matrix.version.python }} cache: pip cache-dependency-path: pyproject.toml @@ -52,13 +56,13 @@ jobs: - name: Install dependencies run: | pip install uv - uv pip install .[strict,tests] --system + uv pip install '.[tests,${{ matrix.version.extras }}]' --system --resolution=${{ matrix.version.resolution }} - name: Test run: pytest --cov=jobflow --cov-report=xml - uses: codecov/codecov-action@v1 - if: matrix.python-version == '3.11' && github.repository == 'materialsproject/jobflow' + if: matrix.version.python == '3.11' && github.repository == 'materialsproject/jobflow' with: token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.xml diff --git a/pyproject.toml b/pyproject.toml index 797ec42d..31f326ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -65,6 +65,21 @@ strict = [ "python-ulid==2.7.0", "typing-extensions==4.12.2", ] +non-strict = [ + "FireWorks>=2.0.3", + "PyYAML>=6.0.1", + "maggma>=0.69.0", + "matplotlib>=3.9.0", + "monty>=2024.5.24", + "moto>=4.2.13", + "networkx>=3.2.1", + "pydantic-settings>=2.3.4", + "pydantic>=2.8.0", + "pydash>=8.0.1", + "pydot>=2.0.0", + "python-ulid>=2.7.0", + "typing-extensions>=4.12.2", +] [project.urls] homepage = "https://materialsproject.github.io/jobflow/" From 737d4fd3b43411d8a31a4ecfcbf490177ef20d09 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 09:14:35 -0400 Subject: [PATCH 02/27] remove non-strict extra deps set has the benefit of running CI with required deps only --- .github/workflows/testing.yml | 10 +++++----- pyproject.toml | 21 +++------------------ 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 671d9bc9..8c55751f 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -36,10 +36,10 @@ jobs: strategy: matrix: version: - - { python: "3.9", resolution: highest, extras: strict } - - { python: "3.10", resolution: lowest-direct, extras: strict } - - { python: "3.11", resolution: highest, extras: non-strict } - - { python: "3.12", resolution: lowest-direct, extras: non-strict } + - { python: "3.9", resolution: highest, extras: "tests,strict" } + - { python: "3.10", resolution: lowest-direct, extras: "tests,strict" } + - { python: "3.11", resolution: highest, extras: tests } + - { python: "3.12", resolution: lowest-direct, extras: tests } steps: - uses: actions/checkout@v4 @@ -56,7 +56,7 @@ jobs: - name: Install dependencies run: | pip install uv - uv pip install '.[tests,${{ matrix.version.extras }}]' --system --resolution=${{ matrix.version.resolution }} + uv pip install '.[${{ matrix.version.extras }}]' --system --resolution=${{ matrix.version.resolution }} - name: Test run: pytest --cov=jobflow --cov-report=xml diff --git a/pyproject.toml b/pyproject.toml index 31f326ab..6f858745 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,13 +26,13 @@ classifiers = [ ] requires-python = ">=3.9" dependencies = [ - "PyYAML", + "PyYAML>=6.0.1", "maggma>=0.57.0", "monty>=2023.9.25", - "networkx", + "networkx>=3.2.1", "pydantic-settings>=2.0.3", "pydantic>=2.0.1", - "pydash", + "pydash>=8.0.1", ] [project.optional-dependencies] @@ -65,21 +65,6 @@ strict = [ "python-ulid==2.7.0", "typing-extensions==4.12.2", ] -non-strict = [ - "FireWorks>=2.0.3", - "PyYAML>=6.0.1", - "maggma>=0.69.0", - "matplotlib>=3.9.0", - "monty>=2024.5.24", - "moto>=4.2.13", - "networkx>=3.2.1", - "pydantic-settings>=2.3.4", - "pydantic>=2.8.0", - "pydash>=8.0.1", - "pydot>=2.0.0", - "python-ulid>=2.7.0", - "typing-extensions>=4.12.2", -] [project.urls] homepage = "https://materialsproject.github.io/jobflow/" From c0bed9e63a9ea29a3837747b1e9c2e090bfd6f98 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 09:22:23 -0400 Subject: [PATCH 03/27] skip tests that fail if optional deps not installed --- tests/core/test_store.py | 2 ++ tests/managers/test_fireworks.py | 2 ++ tests/utils/test_graph.py | 2 ++ tests/utils/test_uid.py | 2 ++ 4 files changed, 8 insertions(+) diff --git a/tests/core/test_store.py b/tests/core/test_store.py index 2ddd78a7..9ab9e4d7 100644 --- a/tests/core/test_store.py +++ b/tests/core/test_store.py @@ -32,6 +32,8 @@ def test_basic(memory_store): def test_additional(memory_store): + pytest.importorskip("moto") + from copy import deepcopy import boto3 diff --git a/tests/managers/test_fireworks.py b/tests/managers/test_fireworks.py index 71ae2c6b..35f51dd1 100644 --- a/tests/managers/test_fireworks.py +++ b/tests/managers/test_fireworks.py @@ -1,5 +1,7 @@ import pytest +pytest.importorskip("fireworks") + def test_flow_to_workflow( memory_jobstore, simple_job, simple_flow, connected_flow, nested_flow diff --git a/tests/utils/test_graph.py b/tests/utils/test_graph.py index 0b831645..8398e494 100644 --- a/tests/utils/test_graph.py +++ b/tests/utils/test_graph.py @@ -71,6 +71,8 @@ def add(a, b): def test_to_pydot(): + pytest.importorskip("pydot") + from jobflow import Flow, Job from jobflow.utils.graph import to_pydot diff --git a/tests/utils/test_uid.py b/tests/utils/test_uid.py index 2e9e294e..b40c0eb0 100644 --- a/tests/utils/test_uid.py +++ b/tests/utils/test_uid.py @@ -2,6 +2,8 @@ def test_uid(): + pytest.importorskip("ulid") + from uuid import UUID from ulid import ULID From 4a1d1ec66f5720ae3534999524f025aeaadb7301 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 09:38:47 -0400 Subject: [PATCH 04/27] add pytest.importorskip("matplotlib") to all test_draw_graph --- tests/core/test_flow.py | 4 ++++ tests/utils/test_graph.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/tests/core/test_flow.py b/tests/core/test_flow.py index 6f0d78f1..1e875ed6 100644 --- a/tests/core/test_flow.py +++ b/tests/core/test_flow.py @@ -354,6 +354,8 @@ def test_graph(): def test_draw_graph(): + pytest.importorskip("matplotlib") + from jobflow import Flow, JobOrder # test unconnected graph @@ -385,6 +387,8 @@ def test_draw_graph(): @pytest.mark.usefixtures("no_pydot") def test_draw_graph_nopydot(): + pytest.importorskip("matplotlib") + from jobflow import Flow, JobOrder # test unconnected graph diff --git a/tests/utils/test_graph.py b/tests/utils/test_graph.py index 8398e494..8ade3f1f 100644 --- a/tests/utils/test_graph.py +++ b/tests/utils/test_graph.py @@ -33,6 +33,8 @@ def test_itergraph(): def test_draw_graph(): + pytest.importorskip("matplotlib") + from networkx import DiGraph, planar_layout from jobflow.utils.graph import draw_graph @@ -45,6 +47,8 @@ def test_draw_graph(): @pytest.mark.usefixtures("no_pydot") def test_draw_graph_no_pydot(): + pytest.importorskip("matplotlib") + from networkx import DiGraph from jobflow.utils.graph import draw_graph From 4d5070e57057190c0ae3208ef74b06f439dcffde Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 09:41:06 -0400 Subject: [PATCH 05/27] refactor --- tests/core/test_flow.py | 3 +-- tests/utils/test_graph.py | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/core/test_flow.py b/tests/core/test_flow.py index 1e875ed6..25397aeb 100644 --- a/tests/core/test_flow.py +++ b/tests/core/test_flow.py @@ -385,8 +385,7 @@ def test_draw_graph(): assert flow.draw_graph() -@pytest.mark.usefixtures("no_pydot") -def test_draw_graph_nopydot(): +def test_draw_graph_nopydot(no_pydot): pytest.importorskip("matplotlib") from jobflow import Flow, JobOrder diff --git a/tests/utils/test_graph.py b/tests/utils/test_graph.py index 8ade3f1f..c9e1d406 100644 --- a/tests/utils/test_graph.py +++ b/tests/utils/test_graph.py @@ -45,8 +45,7 @@ def test_draw_graph(): assert draw_graph(graph, layout_function=planar_layout) -@pytest.mark.usefixtures("no_pydot") -def test_draw_graph_no_pydot(): +def test_draw_graph_no_pydot(no_pydot): pytest.importorskip("matplotlib") from networkx import DiGraph @@ -57,8 +56,7 @@ def test_draw_graph_no_pydot(): assert draw_graph(graph) -@pytest.mark.usefixtures("no_matplotlib") -def test_draw_graph_no_matplotlib(): +def test_draw_graph_no_matplotlib(no_matplotlib): from networkx import DiGraph import jobflow.utils.graph From ddc65c61b29d67412cb3248654c296f8b5c6785d Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 09:48:55 -0400 Subject: [PATCH 06/27] maggma>=0.69 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6f858745..96a4d87b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ classifiers = [ requires-python = ">=3.9" dependencies = [ "PyYAML>=6.0.1", - "maggma>=0.57.0", + "maggma>=0.69.0", "monty>=2023.9.25", "networkx>=3.2.1", "pydantic-settings>=2.0.3", From c3639b17a727398bf6b3172864291f32471e2509 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Thu, 4 Jul 2024 09:55:02 -0400 Subject: [PATCH 07/27] dropping 3.12 CI for now until maggma incompat is fixed --- .github/workflows/testing.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 8c55751f..0f13b76c 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -39,7 +39,9 @@ jobs: - { python: "3.9", resolution: highest, extras: "tests,strict" } - { python: "3.10", resolution: lowest-direct, extras: "tests,strict" } - { python: "3.11", resolution: highest, extras: tests } - - { python: "3.12", resolution: lowest-direct, extras: tests } + # python 3.12 CI failing due to maggma incompatible, see + # https://github.com/materialsproject/jobflow/pull/640#issuecomment-2209055692 + # - { python: "3.12", resolution: lowest-direct, extras: tests } steps: - uses: actions/checkout@v4 From 700064405a87d1e75b04d41ab997d019892564df Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Sat, 20 Jul 2024 15:54:50 -0400 Subject: [PATCH 08/27] fix typo --- .github/workflows/testing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 0f13b76c..4edcb46d 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -37,7 +37,7 @@ jobs: matrix: version: - { python: "3.9", resolution: highest, extras: "tests,strict" } - - { python: "3.10", resolution: lowest-direct, extras: "tests,strict" } + - { python: "3.10", resolution: lowest-direct, extras: "tests" } - { python: "3.11", resolution: highest, extras: tests } # python 3.12 CI failing due to maggma incompatible, see # https://github.com/materialsproject/jobflow/pull/640#issuecomment-2209055692 From 3ee56d2c58e132845f968876350b1bb3e57a3629 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Sat, 20 Jul 2024 15:58:04 -0400 Subject: [PATCH 09/27] fix ruff + mypy after update --- .pre-commit-config.yaml | 8 ++++---- src/jobflow/core/maker.py | 2 +- tests/managers/test_fireworks.py | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4f470b9f..5481fde5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_language_version: exclude: "^src/atomate2/vasp/schemas/calc_types/" repos: - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.4.2 + rev: v0.5.4 hooks: - id: ruff args: [--fix] @@ -17,7 +17,7 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/asottile/blacken-docs - rev: 1.16.0 + rev: 1.18.0 hooks: - id: blacken-docs additional_dependencies: [black] @@ -43,7 +43,7 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.10.0 + rev: v1.11.0 hooks: - id: mypy files: ^src/ @@ -52,7 +52,7 @@ repos: - types-pkg_resources==0.1.2 - types-paramiko - repo: https://github.com/codespell-project/codespell - rev: v2.2.6 + rev: v2.3.0 hooks: - id: codespell stages: [commit, commit-msg] diff --git a/src/jobflow/core/maker.py b/src/jobflow/core/maker.py index 8344f67a..f45935d3 100644 --- a/src/jobflow/core/maker.py +++ b/src/jobflow/core/maker.py @@ -261,7 +261,7 @@ def recursive_call( if isinstance(class_filter, Maker): # Maker instance supplied rather than a Maker class - class_filter = class_filter.__class__ + class_filter = class_filter.__class__ # type: ignore[assignment] def _filter(nested_obj: Maker): # Filter the Maker object diff --git a/tests/managers/test_fireworks.py b/tests/managers/test_fireworks.py index 35f51dd1..8b731e66 100644 --- a/tests/managers/test_fireworks.py +++ b/tests/managers/test_fireworks.py @@ -15,7 +15,7 @@ def test_flow_to_workflow( flow = simple_job() wf = flow_to_workflow(flow, memory_jobstore) - assert type(wf) == Workflow + assert type(wf) is Workflow assert wf.name == "Flow" assert len(wf.fws) == 1 assert wf.fws[0].name == "func" @@ -24,7 +24,7 @@ def test_flow_to_workflow( flow = simple_job() wf = flow_to_workflow(flow, name="custom_name") - assert type(wf) == Workflow + assert type(wf) is Workflow assert wf.name == "custom_name" assert len(wf.fws) == 1 assert wf.fws[0].name == "func" @@ -33,7 +33,7 @@ def test_flow_to_workflow( flow = simple_flow() wf = flow_to_workflow(flow, memory_jobstore) - assert type(wf) == Workflow + assert type(wf) is Workflow assert wf.name == "Flow" assert len(wf.fws) == 1 assert wf.fws[0].name == "func" @@ -42,7 +42,7 @@ def test_flow_to_workflow( flow = connected_flow() wf = flow_to_workflow(flow, memory_jobstore) - assert type(wf) == Workflow + assert type(wf) is Workflow assert wf.name == "Connected Flow" assert len(wf.fws) == 2 assert wf.fws[0].name == "func" @@ -83,7 +83,7 @@ def test_job_to_firework( job = simple_job() fw = job_to_firework(job, memory_jobstore) - assert type(fw) == Firework + assert type(fw) is Firework assert fw.name == "func" job2 = simple_job() @@ -91,7 +91,7 @@ def test_job_to_firework( job2, memory_jobstore, parents=[job.uuid], parent_mapping={job.uuid: 1} ) - assert type(fw) == Firework + assert type(fw) is Firework assert fw.name == "func" with pytest.raises(ValueError, match="Both or neither of"): From 3b850161702c71423a12b1b39a03f07760cc74de Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Sat, 20 Jul 2024 16:01:04 -0400 Subject: [PATCH 10/27] pin pydantic>=2.0.1->2.4 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 96a4d87b..737f04ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ "monty>=2023.9.25", "networkx>=3.2.1", "pydantic-settings>=2.0.3", - "pydantic>=2.0.1", + "pydantic>=2.4", "pydash>=8.0.1", ] From afcefe323112a1af6fcdd4265f50ecafe21b950e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:18:41 +0000 Subject: [PATCH 11/27] Bump pydantic from 2.9.1 to 2.9.2 (#681) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.9.1 to 2.9.2. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.9.1...v2.9.2) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5390847e..3416ba17 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,7 +59,7 @@ strict = [ "moto==4.2.13", "networkx==3.2.1", "pydantic-settings==2.5.2", - "pydantic==2.9.1", + "pydantic==2.9.2", "pydash==8.0.3", "pydot==2.0.0", "python-ulid==2.7.0", From 7b6b1b4bc80d79b56688f821109cdfffbb3e2923 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 23:13:33 +0000 Subject: [PATCH 12/27] Bump maggma from 0.69.3 to 0.69.4 (#682) Bumps [maggma](https://github.com/materialsproject/maggma) from 0.69.3 to 0.69.4. - [Release notes](https://github.com/materialsproject/maggma/releases) - [Changelog](https://github.com/materialsproject/maggma/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/materialsproject/maggma/compare/v0.69.3...v0.69.4) --- updated-dependencies: - dependency-name: maggma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 3416ba17..8ce07a64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ fireworks = ["FireWorks"] strict = [ "FireWorks==2.0.3", "PyYAML==6.0.2", - "maggma==0.69.3", + "maggma==0.69.4", "matplotlib==3.9.2", "monty==2024.7.30", "moto==4.2.13", From 77e23c578b43623089d833277ea5c7064a902e64 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Wed, 2 Oct 2024 17:53:26 -0400 Subject: [PATCH 13/27] bump commit hooks --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5481fde5..765249a6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_language_version: exclude: "^src/atomate2/vasp/schemas/calc_types/" repos: - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: v0.5.4 + rev: v0.6.8 hooks: - id: ruff args: [--fix] @@ -43,7 +43,7 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.11.0 + rev: v1.11.2 hooks: - id: mypy files: ^src/ From d31b6142e0fec290fb83e6dbbc2dff68bd72e638 Mon Sep 17 00:00:00 2001 From: Janosh Riebesell Date: Wed, 2 Oct 2024 18:03:32 -0400 Subject: [PATCH 14/27] ruff fixes + 1 mypy fix --- docs/tutorials/4-creating-flows.ipynb | 2 + docs/tutorials/5-dynamic-flows.ipynb | 79 ++++++++++++++--------- docs/tutorials/6-makers.ipynb | 20 +++--- docs/tutorials/7-generalized-makers.ipynb | 4 +- pyproject.toml | 7 +- src/jobflow/core/flow.py | 2 +- tests/conftest.py | 10 +-- tests/core/test_maker.py | 9 +-- tests/core/test_schemas.py | 2 +- tests/core/test_store.py | 2 +- 10 files changed, 79 insertions(+), 58 deletions(-) diff --git a/docs/tutorials/4-creating-flows.ipynb b/docs/tutorials/4-creating-flows.ipynb index eba524b4..50c2ab91 100644 --- a/docs/tutorials/4-creating-flows.ipynb +++ b/docs/tutorials/4-creating-flows.ipynb @@ -51,10 +51,12 @@ "source": [ "from jobflow import job\n", "\n", + "\n", "@job\n", "def add(a, b, c=2):\n", " return a + b + c\n", "\n", + "\n", "@job\n", "def mult(a, b):\n", " return a * b" diff --git a/docs/tutorials/5-dynamic-flows.ipynb b/docs/tutorials/5-dynamic-flows.ipynb index 43844076..b97579de 100644 --- a/docs/tutorials/5-dynamic-flows.ipynb +++ b/docs/tutorials/5-dynamic-flows.ipynb @@ -42,12 +42,12 @@ "execution_count": 1, "id": "78348798", "metadata": { - "nbsphinx": "hidden", - "tags": [], "ExecuteTime": { "end_time": "2023-11-23T22:55:01.113171569Z", "start_time": "2023-11-23T22:55:01.112486877Z" - } + }, + "nbsphinx": "hidden", + "tags": [] }, "outputs": [], "source": [ @@ -98,26 +98,28 @@ ], "source": [ "from random import randint\n", - "from jobflow import job, Flow, Response\n", + "\n", + "from jobflow import Flow, Response, job\n", "from jobflow.managers.local import run_locally\n", "\n", + "\n", "@job\n", "def make_list(a):\n", " return [a] * randint(2, 5)\n", "\n", + "\n", "@job\n", "def add(a, b):\n", " return a + b\n", "\n", + "\n", "@job\n", "def add_distributed(list_a):\n", - " jobs = []\n", - " for val in list_a:\n", - " jobs.append(add(val, 1))\n", - " \n", + " jobs = [add(val, 1) for val in list_a]\n", " flow = Flow(jobs)\n", " return Response(replace=flow)\n", "\n", + "\n", "job1 = make_list(2)\n", "job2 = add_distributed(job1.output)\n", "flow = Flow([job1, job2])\n", @@ -215,14 +217,17 @@ ], "source": [ "@job\n", - "def add(a, b):\n", + "def add(a, b): # noqa: F811\n", " return a + b\n", "\n", + "\n", "@job\n", "def add_with_logic(a, b):\n", " if a < 10:\n", " return Response(addition=add(a, b))\n", - " \n", + " return None\n", + "\n", + "\n", "job1 = add(1, 2)\n", "job2 = add_with_logic(job1.output, 2)\n", "flow = Flow([job1, job2])\n", @@ -294,11 +299,14 @@ "def add(a, b):\n", " return a + b\n", "\n", + "\n", "@job\n", "def add_with_logic(a, b):\n", " if a < 10:\n", " return Response(addition=add(a, b))\n", - " \n", + " return None\n", + "\n", + "\n", "job1 = add(1, 20)\n", "job2 = add_with_logic(job1.output, 20)\n", "flow = Flow([job1, job2])\n", @@ -341,16 +349,25 @@ }, { "cell_type": "markdown", - "source": [ - "In this way, one can also compute the Fibonacci numbers:" - ], + "id": "7fb27b941602401d91542211134fc71a", "metadata": { "collapsed": false - } + }, + "source": [ + "In this way, one can also compute the Fibonacci numbers:" + ] }, { "cell_type": "code", "execution_count": 8, + "id": "acae54e37e7d407bbb7b55eff062a284", + "metadata": { + "ExecuteTime": { + "end_time": "2023-11-23T22:55:13.426518952Z", + "start_time": "2023-11-23T22:55:13.322421257Z" + }, + "collapsed": false + }, "outputs": [ { "name": "stdout", @@ -392,13 +409,12 @@ } ], "source": [ - "\"\"\"A dynamic workflow that calculates the Fibonacci sequence.\"\"\"\n", - "from jobflow import Response, job, run_locally\n", + "from jobflow import job, run_locally\n", "\n", "\n", "@job\n", "def fibonacci(smaller, larger, stop_point=1000):\n", - " \"\"\"Calculate the next number in the Fibonacci sequence.\n", + " \"\"\"A dynamic workflow that calculates the Fibonacci sequence.\n", "\n", " If the number is larger than stop_point, the job will stop the workflow\n", " execution, otherwise, a new job will be submitted to calculate the next number.\n", @@ -415,15 +431,8 @@ "fibonacci_job = fibonacci(1, 1)\n", "\n", "# run the job; responses will contain the output from all jobs\n", - "responses = run_locally(fibonacci_job)\n" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-11-23T22:55:13.426518952Z", - "start_time": "2023-11-23T22:55:13.322421257Z" - } - } + "responses = run_locally(fibonacci_job)" + ] }, { "cell_type": "markdown", @@ -472,11 +481,14 @@ "def add(a, b):\n", " return a + b\n", "\n", + "\n", "@job\n", "def add_with_logic(a, b):\n", " if a < 10:\n", " return Response(detour=add(a, b))\n", - " \n", + " return None\n", + "\n", + "\n", "job1 = add(1, 2)\n", "job2 = add_with_logic(job1.output, 2)\n", "flow = Flow([job1, job2])\n", @@ -497,7 +509,12 @@ "outputs": [ { "data": { - "text/plain": "{'301d75f0-7042-494a-9f24-cab0428c2fd1': {1: Response(output=3, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n '97be61a8-eec4-4e64-bf53-ba37621575e7': {1: Response(output=None, detour=Flow(name='Flow', uuid='0de995a5-1110-4200-b010-276cb2017474')\n 1. Job(name='add', uuid='d4c31f68-09ad-418a-ac52-89b303fc2a00'), addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n 'd4c31f68-09ad-418a-ac52-89b303fc2a00': {1: Response(output=5, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)}}" + "text/plain": [ + "{'301d75f0-7042-494a-9f24-cab0428c2fd1': {1: Response(output=3, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n", + " '97be61a8-eec4-4e64-bf53-ba37621575e7': {1: Response(output=None, detour=Flow(name='Flow', uuid='0de995a5-1110-4200-b010-276cb2017474')\n", + " 1. Job(name='add', uuid='d4c31f68-09ad-418a-ac52-89b303fc2a00'), addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n", + " 'd4c31f68-09ad-418a-ac52-89b303fc2a00': {1: Response(output=5, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)}}" + ] }, "execution_count": 10, "metadata": {}, @@ -519,9 +536,9 @@ ], "metadata": { "kernelspec": { - "name": "python3", + "display_name": "Python 3 (ipykernel)", "language": "python", - "display_name": "Python 3 (ipykernel)" + "name": "python3" }, "language_info": { "codemirror_mode": { diff --git a/docs/tutorials/6-makers.ipynb b/docs/tutorials/6-makers.ipynb index 93c25602..1c19a044 100644 --- a/docs/tutorials/6-makers.ipynb +++ b/docs/tutorials/6-makers.ipynb @@ -61,9 +61,11 @@ ], "source": [ "from dataclasses import dataclass\n", - "from jobflow import job, Flow, Maker\n", + "\n", + "from jobflow import Flow, Maker, job\n", "from jobflow.managers.local import run_locally\n", "\n", + "\n", "@dataclass\n", "class AddMaker(Maker):\n", " name: str = \"Add Maker\"\n", @@ -73,10 +75,9 @@ " def make(self, a, b):\n", " if self.operation == \"add\":\n", " return a + b\n", - " elif self.operation == \"mult\":\n", + " if self.operation == \"mult\":\n", " return a * b\n", - " else:\n", - " raise ValueError(f\"Unknown operation: {self.operation}\")\n", + " raise ValueError(f\"Unknown operation: {self.operation}\")\n", "\n", "\n", "job1 = AddMaker().make(a=2, b=3)\n", @@ -122,9 +123,11 @@ "outputs": [], "source": [ "from dataclasses import dataclass\n", - "from jobflow import job, Flow, Maker\n", + "\n", + "from jobflow import Flow, Maker, job\n", "from jobflow.managers.local import run_locally\n", "\n", + "\n", "@dataclass\n", "class AddMaker(Maker):\n", " name: str = \"Add Maker\"\n", @@ -134,10 +137,10 @@ " def make(self, a, b):\n", " if self.operation == \"add\":\n", " return a + b\n", - " elif self.operation == \"mult\":\n", + " if self.operation == \"mult\":\n", " return a * b\n", - " else:\n", - " raise ValueError(f\"Unknown operation: {self.operation}\")\n", + " raise ValueError(f\"Unknown operation: {self.operation}\")\n", + "\n", "\n", "@dataclass\n", "class SubtractMaker(Maker):\n", @@ -147,6 +150,7 @@ " def make(self, a, b):\n", " return b - a\n", "\n", + "\n", "job1 = AddMaker().make(a=2, b=3)\n", "job2 = SubtractMaker().make(a=job1.output, b=4)\n", "flow = Flow([job1, job2])" diff --git a/docs/tutorials/7-generalized-makers.ipynb b/docs/tutorials/7-generalized-makers.ipynb index 4f9112a4..cd9353cc 100644 --- a/docs/tutorials/7-generalized-makers.ipynb +++ b/docs/tutorials/7-generalized-makers.ipynb @@ -46,7 +46,7 @@ "metadata": {}, "outputs": [], "source": [ - "from jobflow import Maker, job, Flow\n", + "from jobflow import Flow, Maker, job\n", "from jobflow.managers.local import run_locally" ] }, @@ -59,7 +59,7 @@ "source": [ "class BaseMaker(Maker):\n", " def code_specific_func(self, arg1):\n", - " raise NotImplementedError()\n", + " raise NotImplementedError\n", "\n", " def make(self):\n", " return Flow([job1(self.code_specific_func, \"ARG1\")])\n", diff --git a/pyproject.toml b/pyproject.toml index 8ce07a64..02dd0865 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,13 +53,13 @@ fireworks = ["FireWorks"] strict = [ "FireWorks==2.0.3", "PyYAML==6.0.2", - "maggma==0.69.4", + "maggma==0.69.3", "matplotlib==3.9.2", "monty==2024.7.30", "moto==4.2.13", "networkx==3.2.1", "pydantic-settings==2.5.2", - "pydantic==2.9.2", + "pydantic==2.9.1", "pydash==8.0.3", "pydot==2.0.0", "python-ulid==2.7.0", @@ -121,6 +121,7 @@ exclude_lines = [ [tool.ruff] target-version = "py39" +output-format = "concise" [tool.ruff.lint] select = [ @@ -171,7 +172,6 @@ ignore = [ ] pydocstyle.convention = "numpy" isort.known-first-party = ["jobflow"] -ignore-init-module-imports = true [tool.ruff.lint.per-file-ignores] # F401: unused import @@ -180,3 +180,4 @@ ignore-init-module-imports = true # PLR2004: magic-value-comparison # PT004: pytest-missing-fixture-name-underscore "**/tests/*" = ["ANN", "ARG001", "D", "PLR2004", "PT004", "S101"] +"docs/tutorials/*" = ["D", "PLR2004"] diff --git a/src/jobflow/core/flow.py b/src/jobflow/core/flow.py index b2f47183..a74ffe4d 100644 --- a/src/jobflow/core/flow.py +++ b/src/jobflow/core/flow.py @@ -190,7 +190,7 @@ def __sub__(self, other: Flow | Job) -> Flow: if other not in self: raise ValueError(f"{other!r} not found in flow") new_flow = deepcopy(self) - new_flow.jobs = tuple([job for job in new_flow if job != other]) + new_flow.jobs = tuple(job for job in new_flow if job != other) return new_flow def __repr__(self, level: int = 0, prefix: str = "") -> str: diff --git a/tests/conftest.py b/tests/conftest.py index 083d0b45..6bd17484 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -26,7 +26,7 @@ def mongo_jobstore(database): return store -@pytest.fixture() +@pytest.fixture def memory_jobstore(): from maggma.stores import MemoryStore @@ -38,7 +38,7 @@ def memory_jobstore(): return store -@pytest.fixture() +@pytest.fixture def memory_data_jobstore(): from maggma.stores import MemoryStore @@ -50,7 +50,7 @@ def memory_data_jobstore(): return store -@pytest.fixture() +@pytest.fixture def clean_dir(): import os import shutil @@ -85,7 +85,7 @@ def lpad(database, debug_mode): lpad.db[coll].drop() -@pytest.fixture() +@pytest.fixture def no_pydot(monkeypatch): import builtins @@ -99,7 +99,7 @@ def mocked_import(name, *args, **kwargs): monkeypatch.setattr(builtins, "__import__", mocked_import) -@pytest.fixture() +@pytest.fixture def no_matplotlib(monkeypatch): import builtins diff --git a/tests/core/test_maker.py b/tests/core/test_maker.py index cd4f1979..ac5ecb81 100644 --- a/tests/core/test_maker.py +++ b/tests/core/test_maker.py @@ -116,8 +116,7 @@ def test_update_kwargs(): from jobflow.core.maker import Maker # this is needed to get monty to deserialize them correctly - global AddMaker - global DetourMaker + global AddMaker, DetourMaker @dataclass class AddMaker(Maker): @@ -183,8 +182,7 @@ def make(self, a, b): maker = maker.update_kwargs({"c": 10}, class_filter=AddMaker, nested=False) assert maker.add_maker.c == 5 - global NotAMaker - global FakeDetourMaker + global NotAMaker, FakeDetourMaker @dataclass class NotAMaker(MSONable): @@ -217,8 +215,7 @@ def test_recursive_call(): from jobflow.core.maker import Maker, recursive_call # this is needed to get monty to deserialize them correctly - global AddMaker - global DetourMaker + global AddMaker, DetourMaker @dataclass class AddMaker(Maker): diff --git a/tests/core/test_schemas.py b/tests/core/test_schemas.py index 84af8ace..ef51e6a3 100644 --- a/tests/core/test_schemas.py +++ b/tests/core/test_schemas.py @@ -3,7 +3,7 @@ import pytest -@pytest.fixture() +@pytest.fixture def sample_data(): from jobflow.core.schemas import JobStoreDocument diff --git a/tests/core/test_store.py b/tests/core/test_store.py index 9ab9e4d7..d325b2df 100644 --- a/tests/core/test_store.py +++ b/tests/core/test_store.py @@ -6,7 +6,7 @@ from jobflow.core.store import JobStore -@pytest.fixture() +@pytest.fixture def memory_store(): from maggma.stores import MemoryStore From 280aae1bb3226b2bc52f3aa7ab46e96f9d53cde1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:51:59 +0000 Subject: [PATCH 15/27] Bump maggma from 0.69.3 to 0.69.4 (#688) Bumps [maggma](https://github.com/materialsproject/maggma) from 0.69.3 to 0.69.4. - [Release notes](https://github.com/materialsproject/maggma/releases) - [Changelog](https://github.com/materialsproject/maggma/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/materialsproject/maggma/compare/v0.69.3...v0.69.4) --- updated-dependencies: - dependency-name: maggma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 02dd0865..a83af575 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ fireworks = ["FireWorks"] strict = [ "FireWorks==2.0.3", "PyYAML==6.0.2", - "maggma==0.69.3", + "maggma==0.69.4", "matplotlib==3.9.2", "monty==2024.7.30", "moto==4.2.13", From f73ccc92591a8e24e85da79d212e3af33093cc43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:52:02 +0000 Subject: [PATCH 16/27] Bump ipython from 8.27.0 to 8.28.0 (#687) Bumps [ipython](https://github.com/ipython/ipython) from 8.27.0 to 8.28.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/8.27.0...8.28.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a83af575..d3a4da03 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ ulid = ["python-ulid"] docs = [ "autodoc_pydantic==2.1.0", "furo==2024.8.6", - "ipython==8.27.0", + "ipython==8.28.0", "myst_parser==4.0.0", "nbsphinx==0.9.5", "sphinx-copybutton==0.5.2", From 4962f4dee129d91d6797f6f5be7f0ba03e0c1153 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 23:52:13 +0000 Subject: [PATCH 17/27] Bump pydantic from 2.9.1 to 2.9.2 (#689) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.9.1 to 2.9.2. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.9.1...v2.9.2) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d3a4da03..9c1f095f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,7 +59,7 @@ strict = [ "moto==4.2.13", "networkx==3.2.1", "pydantic-settings==2.5.2", - "pydantic==2.9.1", + "pydantic==2.9.2", "pydash==8.0.3", "pydot==2.0.0", "python-ulid==2.7.0", From bf599bae8299b8ecd0ad88ee304e11441636a81d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 23:36:14 +0000 Subject: [PATCH 18/27] Bump sphinx from 8.0.2 to 8.1.3 (#692) Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 8.0.2 to 8.1.3. - [Release notes](https://github.com/sphinx-doc/sphinx/releases) - [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst) - [Commits](https://github.com/sphinx-doc/sphinx/compare/v8.0.2...v8.1.3) --- updated-dependencies: - dependency-name: sphinx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9c1f095f..7b11fef4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,7 @@ docs = [ "myst_parser==4.0.0", "nbsphinx==0.9.5", "sphinx-copybutton==0.5.2", - "sphinx==8.0.2", + "sphinx==8.1.3", ] dev = ["pre-commit>=2.12.1", "typing_extensions; python_version < '3.11'"] tests = ["moto==4.2.13", "pytest-cov==5.0.0", "pytest==8.3.3"] From d4fd61596c5e5afbe1086be683b518801e2bf4e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 23:36:25 +0000 Subject: [PATCH 19/27] Bump maggma from 0.69.4 to 0.70.0 (#693) Bumps [maggma](https://github.com/materialsproject/maggma) from 0.69.4 to 0.70.0. - [Release notes](https://github.com/materialsproject/maggma/releases) - [Changelog](https://github.com/materialsproject/maggma/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/materialsproject/maggma/compare/v0.69.4...v0.70.0) --- updated-dependencies: - dependency-name: maggma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7b11fef4..03e999ed 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,7 +53,7 @@ fireworks = ["FireWorks"] strict = [ "FireWorks==2.0.3", "PyYAML==6.0.2", - "maggma==0.69.4", + "maggma==0.70.0", "matplotlib==3.9.2", "monty==2024.7.30", "moto==4.2.13", From bffc15f21fafccc617e75069027a5584c4e1de25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 23:36:40 +0000 Subject: [PATCH 20/27] Bump python-ulid from 2.7.0 to 3.0.0 (#694) Bumps [python-ulid](https://github.com/mdomke/python-ulid) from 2.7.0 to 3.0.0. - [Release notes](https://github.com/mdomke/python-ulid/releases) - [Changelog](https://github.com/mdomke/python-ulid/blob/main/CHANGELOG.rst) - [Commits](https://github.com/mdomke/python-ulid/compare/2.7.0...3.0.0) --- updated-dependencies: - dependency-name: python-ulid dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 03e999ed..53617031 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,7 +62,7 @@ strict = [ "pydantic==2.9.2", "pydash==8.0.3", "pydot==2.0.0", - "python-ulid==2.7.0", + "python-ulid==3.0.0", "typing-extensions==4.12.2", ] From 12f839cd162512ac9a1407130332680dc45c382b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 23:58:31 +0000 Subject: [PATCH 21/27] Bump pydantic-settings from 2.5.2 to 2.6.0 (#696) Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.5.2 to 2.6.0. - [Release notes](https://github.com/pydantic/pydantic-settings/releases) - [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.5.2...v2.6.0) --- updated-dependencies: - dependency-name: pydantic-settings dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 53617031..a1ab6403 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,7 @@ strict = [ "monty==2024.7.30", "moto==4.2.13", "networkx==3.2.1", - "pydantic-settings==2.5.2", + "pydantic-settings==2.6.0", "pydantic==2.9.2", "pydash==8.0.3", "pydot==2.0.0", From b97a9d4dc041fc43222ca31e2be11bf036350b99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 23:58:45 +0000 Subject: [PATCH 22/27] Bump monty from 2024.7.30 to 2024.10.21 (#698) Bumps [monty](https://github.com/materialsvirtuallab/monty) from 2024.7.30 to 2024.10.21. - [Release notes](https://github.com/materialsvirtuallab/monty/releases) - [Changelog](https://github.com/materialsvirtuallab/monty/blob/master/docs/changelog.md) - [Commits](https://github.com/materialsvirtuallab/monty/commits/v2024.10.21) --- updated-dependencies: - dependency-name: monty dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a1ab6403..5d58df96 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,7 +55,7 @@ strict = [ "PyYAML==6.0.2", "maggma==0.70.0", "matplotlib==3.9.2", - "monty==2024.7.30", + "monty==2024.10.21", "moto==4.2.13", "networkx==3.2.1", "pydantic-settings==2.6.0", From 9cf327e6577d918dfcf515b556f41613c6596420 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 23:41:40 +0000 Subject: [PATCH 23/27] Bump ipython from 8.28.0 to 8.29.0 (#699) Bumps [ipython](https://github.com/ipython/ipython) from 8.28.0 to 8.29.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/8.28.0...8.29.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5d58df96..979dd0f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ ulid = ["python-ulid"] docs = [ "autodoc_pydantic==2.1.0", "furo==2024.8.6", - "ipython==8.28.0", + "ipython==8.29.0", "myst_parser==4.0.0", "nbsphinx==0.9.5", "sphinx-copybutton==0.5.2", From 88cc265e3ca5ac683528943d177a40782d9210ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:25:02 +0000 Subject: [PATCH 24/27] Bump pydash from 8.0.3 to 8.0.4 (#703) Bumps [pydash](https://github.com/dgilland/pydash) from 8.0.3 to 8.0.4. - [Changelog](https://github.com/dgilland/pydash/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/dgilland/pydash/compare/v8.0.3...v8.0.4) --- updated-dependencies: - dependency-name: pydash dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 979dd0f2..382e281d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,7 +60,7 @@ strict = [ "networkx==3.2.1", "pydantic-settings==2.6.0", "pydantic==2.9.2", - "pydash==8.0.3", + "pydash==8.0.4", "pydot==2.0.0", "python-ulid==3.0.0", "typing-extensions==4.12.2", From 278a15aacc282d4acf2531c8f0fb3c1b82f5eeaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:25:13 +0000 Subject: [PATCH 25/27] Bump pydantic-settings from 2.6.0 to 2.6.1 (#701) Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/pydantic/pydantic-settings/releases) - [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.6.0...v2.6.1) --- updated-dependencies: - dependency-name: pydantic-settings dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 382e281d..e0225015 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -58,7 +58,7 @@ strict = [ "monty==2024.10.21", "moto==4.2.13", "networkx==3.2.1", - "pydantic-settings==2.6.0", + "pydantic-settings==2.6.1", "pydantic==2.9.2", "pydash==8.0.4", "pydot==2.0.0", From fc4f1017cd1fd54d5b3ae4983cddc976d25f032e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:25:22 +0000 Subject: [PATCH 26/27] Bump pytest-cov from 5.0.0 to 6.0.0 (#704) Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 5.0.0 to 6.0.0. - [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst) - [Commits](https://github.com/pytest-dev/pytest-cov/compare/v5.0.0...v6.0.0) --- updated-dependencies: - dependency-name: pytest-cov dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e0225015..9f5a2c47 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,7 +47,7 @@ docs = [ "sphinx==8.1.3", ] dev = ["pre-commit>=2.12.1", "typing_extensions; python_version < '3.11'"] -tests = ["moto==4.2.13", "pytest-cov==5.0.0", "pytest==8.3.3"] +tests = ["moto==4.2.13", "pytest-cov==6.0.0", "pytest==8.3.3"] vis = ["matplotlib", "pydot"] fireworks = ["FireWorks"] strict = [ From ca778dbf0c20c1805a411bbb26e09a0f65234483 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:44:09 +0000 Subject: [PATCH 27/27] Update versioningit requirement from ~=1.0 to >=1,<4 (#705) Updates the requirements on [versioningit](https://github.com/jwodder/versioningit) to permit the latest version. - [Release notes](https://github.com/jwodder/versioningit/releases) - [Changelog](https://github.com/jwodder/versioningit/blob/master/CHANGELOG.md) - [Commits](https://github.com/jwodder/versioningit/compare/v1.0.0...v3.1.2) --- updated-dependencies: - dependency-name: versioningit dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 9f5a2c47..f29fa7cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools >= 42", "versioningit ~= 1.0", "wheel"] +requires = ["setuptools >= 42", "versioningit >= 1,< 4", "wheel"] build-backend = "setuptools.build_meta" [project]