Skip to content

Conversation

@cclauss
Copy link

@cclauss cclauss commented Sep 26, 2025

Python 3.14 -- the π version
https://www.python.org/downloads/release/python-3140/
https://docs.python.org/3.14/whatsnew/3.14.html#porting-to-python-3-14

Blocked by:

Changed in version 3.14: The compiler emits a SyntaxWarning when a return, break or continue appears in a finally block (see PEP 765).

I am out of my depth on this one... Someone else would need to craft the correct solution.

@cclauss cclauss requested review from jakkdl and pquentin September 27, 2025 08:41
@cclauss cclauss added bug Something isn't working help wanted Extra attention is needed labels Sep 27, 2025
@jakkdl
Copy link
Member

jakkdl commented Sep 27, 2025

it appears one (or more) of the test files have a return in a finally. Ideally the compile call should have a better error message and tell what file fails, but you can also try running all the files in the tests/eval_files (tests/autofix_files you can then fix with --generate-autofix) to see where the return in a finally is.

@cclauss
Copy link
Author

cclauss commented Sep 27, 2025

Do we want to modify the test files to be compatible with Python 3.14, or do we want to update the linter to complain about test files that are not compatible with Python 3.14?

@cclauss cclauss changed the title GitHub Actions: Test on Python 3.14 release candidate 3 GitHub Actions: Test on Python 3.14 Oct 7, 2025
@jakkdl
Copy link
Member

jakkdl commented Oct 27, 2025

I think we can probably just modify the tests that do have returns in finally so they work on 3.14. Ideally there'd be support to specify the maximum python version and not just minimum python version in the test infra, but I'm not sure it's worth the effort.
And yeah ideally the compile call would also be improved, but I don't think that's a blocker for this PR.

@A5rocks
Copy link

A5rocks commented Oct 31, 2025

a) probably just pass a filename argument to Plugin.from_source and thread it to ast.parse?
b) I think the issue is tests/eval_files/async910.py, it says the path in the stack frames when pytest prints out the locals.

@cclauss cclauss force-pushed the Test-on-Python-3.14 branch from 435da9c to 452ab16 Compare October 31, 2025 16:23
@cclauss cclauss closed this Nov 1, 2025
@cclauss cclauss deleted the Test-on-Python-3.14 branch November 1, 2025 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working help wanted Extra attention is needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants