Brent Westbrook
591e9bbccb
Remove parentheses around multiple exception types on Python 3.14+ ( #20768 )
...
Summary
--
This PR implements the black preview style from
https://github.com/psf/black/pull/4720 . As of Python 3.14, you're
allowed to omit the parentheses around groups of exceptions, as long as
there's no `as` binding:
**3.13**
```pycon
Python 3.13.4 (main, Jun 4 2025, 17:37:06) [Clang 20.1.4 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> try: ...
... except (Exception, BaseException): ...
...
Ellipsis
>>> try: ...
... except Exception, BaseException: ...
...
File "<python-input-1>", line 2
except Exception, BaseException: ...
^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized
```
**3.14**
```pycon
Python 3.14.0rc2 (main, Sep 2 2025, 14:20:56) [Clang 20.1.4 ] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> try: ...
... except Exception, BaseException: ...
...
Ellipsis
>>> try: ...
... except (Exception, BaseException): ...
...
Ellipsis
>>> try: ...
... except Exception, BaseException as e: ...
...
File "<python-input-2>", line 2
except Exception, BaseException as e: ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized when using 'as'
```
I think this ended up being pretty straightforward, at least once Micha
showed me where to start :)
Test Plan
--
New tests
At first I thought we were deviating from black in how we handle
comments within the exception type tuple, but I think this applies to
how we format all tuples, not specifically with the new preview style.
2025-10-14 11:17:45 -04:00
..
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-05-22 07:52:21 +02:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2025-01-09 10:20:06 +01:00
2025-10-14 10:14:59 -04:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2025-10-14 10:14:59 -04:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 10:14:59 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2025-04-11 10:21:47 +02:00
2025-10-07 12:23:11 -04:00
2025-10-07 12:23:11 -04:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-12-09 09:32:12 +00:00
2025-10-07 12:23:11 -04:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-02-18 08:43:51 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2025-05-30 15:00:56 -05:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2025-10-13 10:00:37 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-07-27 12:41:03 +00:00
2025-10-07 12:23:11 -04:00
2025-07-27 12:41:03 +00:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2025-07-27 12:41:03 +00:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2025-06-15 06:53:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-05-22 07:52:21 +02:00
2025-05-22 07:52:21 +02:00
2025-10-07 12:23:11 -04:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-12-09 09:32:12 +00:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-01-09 10:20:06 +01:00
2025-01-09 10:20:06 +01:00
2025-01-09 10:20:06 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-10-14 11:17:45 -04:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-02-18 12:03:13 -05:00
2025-10-13 14:13:27 -04:00
2025-10-07 12:23:11 -04:00
2025-10-07 12:23:11 -04:00
2024-11-15 19:31:15 +01:00
2025-06-24 16:25:44 +02:00
2024-11-15 19:31:15 +01:00
2024-11-15 19:31:15 +01:00
2025-06-24 16:25:44 +02:00
2025-10-07 12:23:11 -04:00
2025-06-07 16:02:43 +02:00
2024-11-15 19:31:15 +01:00