Source code for flakeheaven.parsers._jupyter
# built-in
import json
from pathlib import Path
from typing import List
# app
from ._base import BaseParser
[docs]class JupyterParser(BaseParser):
[docs] @staticmethod
def parse(path: Path) -> List[str]:
lines = []
with path.open(encoding='utf8') as stream:
notebook = json.load(stream)
for cell in notebook['cells']:
if cell['cell_type'] != 'code':
continue
lines.append('\n')
lines.append('# In [{}]:\n'.format(cell.get('execution_count', 0)))
lines.extend(line.rstrip('\n') + '\n' for line in cell['source'])
return lines