mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 02:59:33 +07:00
33 lines
863 B
Python
33 lines
863 B
Python
import codecs
|
|
import nbformat
|
|
import sys
|
|
from nbformat.v4 import new_code_cell, new_notebook
|
|
|
|
name = sys.argv[-1][:-3]
|
|
source = name + ".py"
|
|
target = name + ".ipynb"
|
|
|
|
|
|
def parse_python(file):
|
|
with open(file, "r") as file_descriptor:
|
|
lines = []
|
|
for line in file_descriptor:
|
|
line_stripped = line.strip()
|
|
if line_stripped.startswith('# In[') and line_stripped.endswith(']:') and lines:
|
|
yield "".join(lines)
|
|
lines = []
|
|
continue
|
|
lines.append(line)
|
|
if lines:
|
|
yield "".join(lines)
|
|
|
|
|
|
cells = []
|
|
for cell_content in parse_python(source):
|
|
cells.append(new_code_cell(source=cell_content))
|
|
|
|
nb0 = new_notebook(cells=cells, metadata={'language': 'python',})
|
|
|
|
with codecs.open(target, encoding='utf-8', mode='w') as f:
|
|
nbformat.write(nb0, f, 4)
|