diff --git a/ModuleUpdate.py b/ModuleUpdate.py index db42f8e5ab..a8bf3993b3 100644 --- a/ModuleUpdate.py +++ b/ModuleUpdate.py @@ -5,15 +5,16 @@ import multiprocessing import warnings -if sys.platform in ("win32", "darwin") and sys.version_info < (3, 11, 9): +if sys.platform in ("win32", "darwin") and not (3, 11, 9) <= sys.version_info < (3, 14, 0): # Official micro version updates. This should match the number in docs/running from source.md. - raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. Official 3.11.9+ is supported.") + raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. " + "Official 3.11.9 through 3.13.x is supported.") elif sys.platform in ("win32", "darwin") and sys.version_info < (3, 11, 13): # There are known security issues, but no easy way to install fixed versions on Windows for testing. warnings.warn(f"Python Version {sys.version_info} has security issues. Don't use in production.") -elif sys.version_info < (3, 11, 0): +elif not (3, 11, 0) <= sys.version_info < (3, 14, 0): # Other platforms may get security backports instead of micro updates, so the number is unreliable. - raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. 3.11.0+ is supported.") + raise RuntimeError(f"Incompatible Python Version found: {sys.version_info}. 3.11.0 through 3.13.x is supported.") # don't run update if environment is frozen/compiled or if not the parent process (skip in subprocess) _skip_update = bool(