From a8b4665e7d6eb945c47820adb1a3f8b006adce0c Mon Sep 17 00:00:00 2001 From: Richard Si <63936253+ichard26@users.noreply.github.com> Date: Sun, 29 Aug 2021 17:04:49 -0400 Subject: [PATCH] Exclude broken typing-extensions version + fix import (#2460) re. import, the ipynb code was assuming that typing-extensions would always be available, but that's not the case! There's an environment marker on the requirement meaning it won't get installed on 3.10 or higher. The test suite didn't catch this issue since aiohttp pulls in typing-extensions unconditionally. --- CHANGES.md | 2 ++ setup.py | 5 ++++- src/black/handle_ipynb_magics.py | 12 ++++++++---- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 6e2721b..576e3c8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -14,6 +14,8 @@ - Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447). - Pin `setuptools-scm` build-time dependency version (#2457) +- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 + (#2460) ### _Blackd_ diff --git a/setup.py b/setup.py index 215fa6c..929096a 100644 --- a/setup.py +++ b/setup.py @@ -79,7 +79,10 @@ setup( "regex>=2020.1.8", "pathspec>=0.9.0, <1", "dataclasses>=0.6; python_version < '3.7'", - "typing_extensions>=3.10.0.0; python_version < '3.10'", + "typing_extensions>=3.10.0.0", + # 3.10.0.1 is broken on at least Python 3.10, + # https://github.com/python/typing/issues/865 + "typing_extensions!=3.10.0.1; python_version >= '3.10'", "mypy_extensions>=0.4.3", ], extras_require={ diff --git a/src/black/handle_ipynb_magics.py b/src/black/handle_ipynb_magics.py index ad93c44..b18f862 100644 --- a/src/black/handle_ipynb_magics.py +++ b/src/black/handle_ipynb_magics.py @@ -1,15 +1,19 @@ """Functions to process IPython magics with.""" + from functools import lru_cache import dataclasses import ast -from typing import Dict +from typing import Dict, List, Tuple, Optional import secrets -from typing import List, Tuple +import sys import collections -from typing import Optional -from typing_extensions import TypeGuard +if sys.version_info >= (3, 10): + from typing import TypeGuard +else: + from typing_extensions import TypeGuard + from black.report import NothingChanged from black.output import out -- 2.39.2