From 05954c0950637aa1039d0ac86a4a7e832cbffd9f Mon Sep 17 00:00:00 2001 From: "Matthew D. Scholefield" Date: Sat, 20 Nov 2021 11:25:30 -0800 Subject: [PATCH] Fix process pool fallback on Python 3.10 (GH-2631) In Python 3.10 the exception generated by creating a process pool on a Python build that doesn't support this is now `NotImplementedError` Commit history before merge: * Fix process pool fallback on Python 3.10 * Update CHANGES.md * Update CHANGES.md Co-authored-by: Jelle Zijlstra --- CHANGES.md | 6 ++++++ src/black/__init__.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 35024de724d..db519ac6bbc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,11 @@ # Change Log +## Unreleased + +### _Black_ + +- Fixed Python 3.10 support on platforms without ProcessPoolExecutor (#2631) + ## 21.11b1 ### _Black_ diff --git a/src/black/__init__.py b/src/black/__init__.py index a5ddec91221..aa7970cfd6c 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -687,7 +687,7 @@ def reformat_many( worker_count = min(worker_count, 60) try: executor = ProcessPoolExecutor(max_workers=worker_count) - except (ImportError, OSError): + except (ImportError, NotImplementedError, OSError): # we arrive here if the underlying system does not support multi-processing # like in AWS Lambda or Termux, in which case we gracefully fallback to # a ThreadPoolExecutor with just a single worker (more workers would not do us