From 7ec5f371fa1aa88e527b0fd551d9a92949e3ccd9 Mon Sep 17 00:00:00 2001 From: liamhuber Date: Wed, 8 Oct 2025 11:26:42 -0700 Subject: [PATCH 1/5] Update to python 3.14 And make 3.13 the main version for the PR test suite Signed-off-by: liamhuber --- .binder/environment.yml | 2 +- .ci_support/environment.yml | 2 +- .github/workflows/push-pull.yml | 8 ++++---- docs/environment.yml | 2 +- pyproject.toml | 3 ++- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.binder/environment.yml b/.binder/environment.yml index 2dc9198..f5f0668 100644 --- a/.binder/environment.yml +++ b/.binder/environment.yml @@ -3,4 +3,4 @@ channels: dependencies: - hatchling =1.27.0 - hatch-vcs =0.5.0 -- python >=3.11,<3.14 +- python >=3.11,<3.15 diff --git a/.ci_support/environment.yml b/.ci_support/environment.yml index 758803f..353cf3a 100644 --- a/.ci_support/environment.yml +++ b/.ci_support/environment.yml @@ -3,4 +3,4 @@ channels: dependencies: - hatchling =1.27.0 - hatch-vcs =0.5.0 -- python >=3.11,<3.14 \ No newline at end of file +- python >=3.11,<3.15 \ No newline at end of file diff --git a/.github/workflows/push-pull.yml b/.github/workflows/push-pull.yml index 5b65395..1544c43 100644 --- a/.github/workflows/push-pull.yml +++ b/.github/workflows/push-pull.yml @@ -14,10 +14,10 @@ jobs: with: tests-env-files: .ci_support/environment.yml .ci_support/environment-tests.yml do-benchmark-tests: false - python-version-alt1: 'exclude' - python-version-alt2: '3.11' - python-version: '3.12' - python-version-alt3: '3.13' + python-version-alt1: '3.11' + python-version-alt2: '3.12' + python-version: '3.13' + python-version-alt3: '3.14' do-codecov: true do-codacy: false do-coveralls: false diff --git a/docs/environment.yml b/docs/environment.yml index 19b042f..c7dd6e3 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -9,4 +9,4 @@ dependencies: - versioneer - hatchling =1.27.0 - hatch-vcs =0.5.0 -- python >=3.11,<3.14 +- python >=3.11,<3.15 diff --git a/pyproject.toml b/pyproject.toml index f16a2e3..9178f3b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ name = "pyiron_snippets" description = "pyiron_snippets - Short, dependency-free python snippets." readme = "docs/README.md" keywords = [ "pyiron",] -requires-python = ">=3.11, <3.14" +requires-python = ">=3.11, <3.15" classifiers = [ "Development Status :: 5 - Production/Stable", "Topic :: Software Development", @@ -22,6 +22,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] dependencies = [ ] From e68e910e4b839dfeb2284499b9ba17ee1145578a Mon Sep 17 00:00:00 2001 From: liamhuber Date: Wed, 8 Oct 2025 12:08:17 -0700 Subject: [PATCH 2/5] Accept pickling errors as well Pickle appears to be evaluating the picklability of reduced objects earlier in the process. I couldn't find documentation for this change. Signed-off-by: liamhuber --- tests/unit/test_factory.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/test_factory.py b/tests/unit/test_factory.py index bd6fc6f..6619f7e 100644 --- a/tests/unit/test_factory.py +++ b/tests/unit/test_factory.py @@ -294,7 +294,7 @@ def internal_factory(n, s="unimportable_scope", /): self.assertEqual(1, foo.x, msg="Nothing should stop the factory from working") self.assertEqual(0, foo.y, msg="Nothing should stop the factory from working") with self.assertRaises( - AttributeError, + (AttributeError, pickle.PicklingError), msg="`internal_factory` is defined only locally inside the scope of " "another function, so we don't expect it to be pickleable whether it's " "a class factory or not!", @@ -462,7 +462,7 @@ def adds_6_plus_x(y: int): msg="Nothing stops us from creating and running these", ) with self.assertRaises( - AttributeError, + (AttributeError, pickle.PicklingError), msg="We can't find the function defined to import and recreate" "the factory", ): From 4384c9bde247765e4fd5c22d76e958dcc4d60028 Mon Sep 17 00:00:00 2001 From: liamhuber Date: Wed, 8 Oct 2025 12:53:43 -0700 Subject: [PATCH 3/5] Upgrade cloudpickle Signed-off-by: liamhuber --- .ci_support/environment-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci_support/environment-tests.yml b/.ci_support/environment-tests.yml index b157631..a6cae8a 100644 --- a/.ci_support/environment-tests.yml +++ b/.ci_support/environment-tests.yml @@ -1,4 +1,4 @@ channels: - conda-forge dependencies: - - cloudpickle =3.0.0 \ No newline at end of file + - cloudpickle =3.1.1 \ No newline at end of file From b0c122811d58beffbbf2f40bb91a640b53c9f18d Mon Sep 17 00:00:00 2001 From: liamhuber Date: Wed, 8 Oct 2025 12:56:58 -0700 Subject: [PATCH 4/5] Accommodate error type change Signed-off-by: liamhuber --- tests/unit/test_factory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/unit/test_factory.py b/tests/unit/test_factory.py index 6619f7e..e997fcc 100644 --- a/tests/unit/test_factory.py +++ b/tests/unit/test_factory.py @@ -321,7 +321,8 @@ def internally_undecorated(n, s="undecorated_unimportable", /): ) with self.assertRaises( - AttributeError, msg="The relevant factory function is only in " + (AttributeError, pickle.PicklingError), + msg="The relevant factory function is only in " ): pickle.dumps(bar) From db8246f0b9845e46de400a9dfcd7217930e4076b Mon Sep 17 00:00:00 2001 From: liamhuber Date: Wed, 8 Oct 2025 12:58:03 -0700 Subject: [PATCH 5/5] Black Signed-off-by: liamhuber --- tests/unit/test_factory.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/test_factory.py b/tests/unit/test_factory.py index e997fcc..9da06f6 100644 --- a/tests/unit/test_factory.py +++ b/tests/unit/test_factory.py @@ -322,7 +322,7 @@ def internally_undecorated(n, s="undecorated_unimportable", /): with self.assertRaises( (AttributeError, pickle.PicklingError), - msg="The relevant factory function is only in " + msg="The relevant factory function is only in ", ): pickle.dumps(bar)