JupytextWebUI / utils.py
MakiAi's picture
Upload 4 files
328e849 verified
import jupytext
import os
import tempfile
def convert_file(input_file, output_format, config):
with tempfile.TemporaryDirectory() as temp_dir:
base_name = os.path.splitext(input_file.name)[0]
output_file = os.path.join(temp_dir, f"{base_name}.{output_format}")
content = input_file.getvalue()
input_format = os.path.splitext(input_file.name)[1][1:]
read_options = {}
write_options = {}
if input_format in ["py", "md"]:
read_options["fmt"] = f"{input_format}:{config['py_format']}" if input_format == "py" else input_format
notebook = jupytext.reads(content.decode(), **read_options)
else:
notebook = jupytext.reads(content, fmt=input_format)
if output_format == "py":
write_options["fmt"] = f"{output_format}:{config['py_format']}"
if config["comment_magics"]:
write_options["comment_magics"] = True
elif output_format == "ipynb":
write_options["fmt"] = output_format
else:
write_options["fmt"] = output_format
jupytext.write(notebook, output_file, **write_options)
with open(output_file, "rb") as f:
converted_content = f.read()
return converted_content, f"{base_name}.{output_format}"