def convert_notebook( nb_file: PathLike, outfile: PathLike, ): """ Convert a notebook to a Python file. :param nb_file: Filename of the Jupyter Notebook to convert. :param outfile: The filename to store the Python output as. """ nb_file = PathPlus(nb_file) outfile = PathPlus(outfile) outfile.parent.maybe_make() script, *_ = py_exporter.from_file(str(nb_file)) outfile.write_clean(script) with importlib_resources.path("notebook2script", "isort.cfg") as isort_config: with importlib_resources.path("notebook2script", "style.yapf") as yapf_style: reformat_file(outfile, yapf_style=str(yapf_style), isort_config_file=str(isort_config)) linter.process_file(outfile) with open(outfile, "r+b") as f: fix_encoding_pragma(f, remove=True, expected_pragma=b"# coding: utf-8")
def test_ok_input_alternate_pragma(): input_s = b'# coding: utf-8\nx = 1\n' bytesio = io.BytesIO(input_s) ret = fix_encoding_pragma(bytesio, expected_pragma=b'# coding: utf-8') assert ret == 0 bytesio.seek(0) assert bytesio.read() == input_s
def test_ok_input_alternate_pragma(): input_s = b'# coding: utf-8\nx = 1\n' bytesio = io.BytesIO(input_s) ret = fix_encoding_pragma(bytesio, expected_pragma=b'# coding: utf-8') assert ret == 0 bytesio.seek(0) assert bytesio.read() == input_s
def test_not_ok_inputs(input_str, output): bytesio = io.BytesIO(input_str) assert fix_encoding_pragma(bytesio) == 1 bytesio.seek(0) assert bytesio.read() == output
def test_ok_inputs(input_str): bytesio = io.BytesIO(input_str) assert fix_encoding_pragma(bytesio) == 0 bytesio.seek(0) assert bytesio.read() == input_str
def test_not_ok_input_alternate_pragma(): bytesio = io.BytesIO(b'x = 1\n') ret = fix_encoding_pragma(bytesio, expected_pragma=b'# coding: utf-8') assert ret == 1 bytesio.seek(0) assert bytesio.read() == b'# coding: utf-8\nx = 1\n'
def test_not_ok_inputs(input_str, output): bytesio = io.BytesIO(input_str) assert fix_encoding_pragma(bytesio) == 1 bytesio.seek(0) assert bytesio.read() == output
def test_ok_inputs(input_str): bytesio = io.BytesIO(input_str) assert fix_encoding_pragma(bytesio) == 0 bytesio.seek(0) assert bytesio.read() == input_str
def test_not_ok_input_alternate_pragma(): bytesio = io.BytesIO(b'x = 1\n') ret = fix_encoding_pragma(bytesio, expected_pragma=b'# coding: utf-8') assert ret == 1 bytesio.seek(0) assert bytesio.read() == b'# coding: utf-8\nx = 1\n'