MCPcopy
hub / github.com/psf/black / replace_cell_magics

Function replace_cell_magics

src/black/handle_ipynb_magics.py:233–261  ·  view source on GitHub ↗

r"""Replace cell magic with token. Note that 'src' will already have been processed by IPython's TransformerManager().transform_cell. Example, get_ipython().run_cell_magic('t', '-n1', 'ls =!ls\n') becomes "a794." ls =!ls The replacement, along with t

(src: str)

Source from the content-addressed store, hash-verified

231
232
233def replace_cell_magics(src: str) -> tuple[str, list[Replacement]]:
234 r"""Replace cell magic with token.
235
236 Note that 'src' will already have been processed by IPython's
237 TransformerManager().transform_cell.
238
239 Example,
240
241 get_ipython().run_cell_magic('t', '-n1', 'ls =!ls\n')
242
243 becomes
244
245 "a794."
246 ls =!ls
247
248 The replacement, along with the transformed code, is returned.
249 """
250 replacements: list[Replacement] = []
251
252 tree = ast.parse(src)
253
254 cell_magic_finder = CellMagicFinder()
255 cell_magic_finder.visit(tree)
256 if cell_magic_finder.cell_magic is None:
257 return src, replacements
258 header = cell_magic_finder.cell_magic.header
259 mask = get_token(src, header)
260 replacements.append(Replacement(mask=mask, src=header))
261 return f"{mask}\n{cell_magic_finder.cell_magic.body}", replacements
262
263
264def replace_magics(src: str) -> tuple[str, list[Replacement]]:

Callers 1

mask_cellFunction · 0.85

Calls 6

CellMagicFinderClass · 0.85
get_tokenFunction · 0.85
ReplacementClass · 0.85
visitMethod · 0.80
parseMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected