diff --git a/b2/_internal/console_tool.py b/b2/_internal/console_tool.py index 48481234..0d72a630 100644 --- a/b2/_internal/console_tool.py +++ b/b2/_internal/console_tool.py @@ -923,7 +923,12 @@ def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): - if sys.platform != 'darwin' or os.environ.get('B2_TEST_DISABLE_TQDM_CLOSER'): + if ( + sys.platform != 'darwin' + or sys.version_info < (3, 11) + or sys.version_info > (3, 14, 1) + or os.environ.get('B2_TEST_DISABLE_TQDM_CLOSER') + ): return try: from multiprocessing.synchronize import SemLock diff --git a/changelog.d/+tqdm-closer-python314.fixed.md b/changelog.d/+tqdm-closer-python314.fixed.md new file mode 100644 index 00000000..f1f43704 --- /dev/null +++ b/changelog.d/+tqdm-closer-python314.fixed.md @@ -0,0 +1 @@ +Disable Tqdm semaphore leak workaround for Python >=3.14.2, as apparently it is no longer an issue in newer versions. \ No newline at end of file diff --git a/test/integration/test_tqdm_closer.py b/test/integration/test_tqdm_closer.py index 4ac29e8d..264b1e5d 100644 --- a/test/integration/test_tqdm_closer.py +++ b/test/integration/test_tqdm_closer.py @@ -14,8 +14,8 @@ @pytest.mark.skipif( - (sys.platform != 'darwin') or ((sys.version_info.major, sys.version_info.minor) < (3, 11)), - reason='Tqdm closing error only occurs on OSX and python 3.11 or newer', + (sys.platform != 'darwin') or (sys.version_info < (3, 11)) or (sys.version_info > (3, 14, 1)), + reason='Tqdm closing error only occurs on OSX and python >=3.11 up to 3.14.2', ) def test_tqdm_closer(b2_tool, bucket, file_name): # test that stderr doesn't contain any warning, in particular warnings about multiprocessing resource tracker