X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/e0253080b0d2b61bf2105a2f5afdf5173e33d0e5..c99417ffe8aa51015f08a96220072fa0dbcce51d:/src/black/handle_ipynb_magics.py?ds=sidebyside

diff --git a/src/black/handle_ipynb_magics.py b/src/black/handle_ipynb_magics.py
index 5807dac..9e1af75 100644
--- a/src/black/handle_ipynb_magics.py
+++ b/src/black/handle_ipynb_magics.py
@@ -1,22 +1,20 @@
 """Functions to process IPython magics with."""
 
-from functools import lru_cache
-import dataclasses
 import ast
-from typing import Dict, List, Tuple, Optional
-
+import collections
+import dataclasses
 import secrets
 import sys
-import collections
+from functools import lru_cache
+from typing import Dict, List, Optional, Tuple
 
 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
-
+from black.report import NothingChanged
 
 TRANSFORMED_MAGICS = frozenset(
     (
@@ -37,20 +35,15 @@ TOKENS_TO_IGNORE = frozenset(
         "ESCAPED_NL",
     )
 )
-NON_PYTHON_CELL_MAGICS = frozenset(
+PYTHON_CELL_MAGICS = frozenset(
     (
-        "bash",
-        "html",
-        "javascript",
-        "js",
-        "latex",
-        "markdown",
-        "perl",
-        "ruby",
-        "script",
-        "sh",
-        "svg",
-        "writefile",
+        "capture",
+        "prun",
+        "pypy",
+        "python",
+        "python3",
+        "time",
+        "timeit",
     )
 )
 TOKEN_HEX = secrets.token_hex
@@ -71,7 +64,7 @@ def jupyter_dependencies_are_installed(*, verbose: bool, quiet: bool) -> bool:
         if verbose or not quiet:
             msg = (
                 "Skipping .ipynb files as Jupyter dependencies are not installed.\n"
-                "You can fix this by running ``pip install black[jupyter]``"
+                'You can fix this by running ``pip install "black[jupyter]"``'
             )
             out(msg)
         return False
@@ -95,11 +88,7 @@ def remove_trailing_semicolon(src: str) -> Tuple[str, bool]:
     Mirrors the logic in `quiet` from `IPython.core.displayhook`, but uses
     ``tokenize_rt`` so that round-tripping works fine.
     """
-    from tokenize_rt import (
-        src_to_tokens,
-        tokens_to_src,
-        reversed_enumerate,
-    )
+    from tokenize_rt import reversed_enumerate, src_to_tokens, tokens_to_src
 
     tokens = src_to_tokens(src)
     trailing_semicolon = False
@@ -123,7 +112,7 @@ def put_trailing_semicolon_back(src: str, has_trailing_semicolon: bool) -> str:
     """
     if not has_trailing_semicolon:
         return src
-    from tokenize_rt import src_to_tokens, tokens_to_src, reversed_enumerate
+    from tokenize_rt import reversed_enumerate, src_to_tokens, tokens_to_src
 
     tokens = src_to_tokens(src)
     for idx, token in reversed_enumerate(tokens):
@@ -230,8 +219,6 @@ def replace_cell_magics(src: str) -> Tuple[str, List[Replacement]]:
     cell_magic_finder.visit(tree)
     if cell_magic_finder.cell_magic is None:
         return src, replacements
-    if cell_magic_finder.cell_magic.name in NON_PYTHON_CELL_MAGICS:
-        raise NothingChanged
     header = cell_magic_finder.cell_magic.header
     mask = get_token(src, header)
     replacements.append(Replacement(mask=mask, src=header))
@@ -422,7 +409,7 @@ class MagicFinder(ast.NodeVisitor):
                     src += f" {args[1]}"
             else:
                 raise AssertionError(
-                    "Unexpected IPython magic {node.value.func.attr!r} found. "
+                    f"Unexpected IPython magic {node.value.func.attr!r} found. "
                     "Please report a bug on https://github.com/psf/black/issues."
                 ) from None
             self.magics[node.value.lineno].append(