From 0f1e46b9b351bc2e58da23e812ce3f32e3e37627 Mon Sep 17 00:00:00 2001 From: Guido Petretto Date: Tue, 21 Apr 2026 12:35:38 +0200 Subject: [PATCH] fix job_kwargs --- src/jobflow/core/job.py | 6 +++++- tests/core/test_job.py | 4 ---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/jobflow/core/job.py b/src/jobflow/core/job.py index d00501b2..5daa0752 100644 --- a/src/jobflow/core/job.py +++ b/src/jobflow/core/job.py @@ -186,6 +186,7 @@ def job( """ def decorator(func): + from copy import deepcopy from functools import wraps # unwrap staticmethod or classmethod decorators @@ -214,7 +215,10 @@ def get_job(*args, **kwargs) -> Job: args = args[1:] return Job( - function=f, function_args=args, function_kwargs=kwargs, **job_kwargs + function=f, + function_args=args, + function_kwargs=kwargs, + **deepcopy(job_kwargs), ) get_job.original = func diff --git a/tests/core/test_job.py b/tests/core/test_job.py index f9416221..50c5e94f 100644 --- a/tests/core/test_job.py +++ b/tests/core/test_job.py @@ -1421,10 +1421,6 @@ def test_job_magic_methods(): assert hash(job1) != hash(job2) != hash(job3) -@pytest.mark.xfail( - reason="Mutating one job's config mutates all others created by that decorator.", - strict=True, -) def test_job_decorator_config_shared(): from jobflow import JobConfig, job