Esempio n. 1
0
def test_combine():
    nb_source = new_notebook(cells=[
        new_markdown_cell('Markdown text'),
        new_code_cell('a=3'),
        new_code_cell('a+1'),
        new_code_cell('a+1'),
        new_markdown_cell('Markdown text'),
        new_code_cell('a+2')
    ])

    nb_outputs = new_notebook(cells=[
        new_markdown_cell('Markdown text'),
        new_code_cell('a=3'),
        new_code_cell('a+1'),
        new_code_cell('a+2'),
        new_markdown_cell('Markdown text')
    ])

    nb_outputs.cells[2].outputs = ['4']
    nb_outputs.cells[3].outputs = ['5']

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[2].outputs == ['4']
    assert nb_source.cells[3].outputs == []
    assert nb_source.cells[5].outputs == ['5']
Esempio n. 2
0
def test_combine():
    nb_source = new_notebook(cells=[
        new_markdown_cell("Markdown text"),
        new_code_cell("a=3"),
        new_code_cell("a+1"),
        new_code_cell("a+1"),
        new_markdown_cell("Markdown text"),
        new_code_cell("a+2"),
    ])

    nb_outputs = new_notebook(cells=[
        new_markdown_cell("Markdown text"),
        new_code_cell("a=3"),
        new_code_cell("a+1"),
        new_code_cell("a+2"),
        new_markdown_cell("Markdown text"),
    ])

    nb_outputs.cells[2].outputs = ["4"]
    nb_outputs.cells[3].outputs = ["5"]

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[2].outputs == ["4"]
    assert nb_source.cells[3].outputs == []
    assert nb_source.cells[5].outputs == ["5"]
Esempio n. 3
0
def test_combine_reorder():
    nb_source = new_notebook(cells=[
        new_markdown_cell('Markdown text'),
        new_code_cell('1+1'),
        new_code_cell('2+2'),
        new_code_cell('3+3'),
        new_markdown_cell('Markdown text'),
        new_code_cell('4+4')
    ])

    nb_outputs = new_notebook(cells=[
        new_markdown_cell('Markdown text'),
        new_code_cell('2+2'),
        new_code_cell('4+4'),
        new_code_cell('1+1'),
        new_code_cell('3+3'),
        new_markdown_cell('Markdown text')
    ])

    nb_outputs.cells[1].outputs = ['4']
    nb_outputs.cells[2].outputs = ['8']
    nb_outputs.cells[3].outputs = ['2']
    nb_outputs.cells[4].outputs = ['6']

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[1].outputs == ['2']
    assert nb_source.cells[2].outputs == ['4']
    assert nb_source.cells[3].outputs == ['6']
    assert nb_source.cells[5].outputs == ['8']
def test_write_reload_simple_notebook():
    nb1 = new_notebook(cells=[
        new_markdown_cell('A markdown cell', metadata={'md': 'value'}),
        new_code_cell('1 + 1'),
        new_markdown_cell('A markdown cell', metadata={'md': 'value'}),
        new_code_cell("""def f(x):
    return x""", metadata={'md': 'value'}),
        new_markdown_cell('A markdown cell', metadata={'md': 'value'}),
        new_code_cell("""def g(x):
    return x


def h(x):
    return x
""",
                      metadata={'md': 'value'})
    ])

    text = writes(nb1, 'py:bare')
    nb2 = reads(text, 'py:bare')
    combine_inputs_with_outputs(nb2, nb1, 'py:bare')
    nb2.metadata.pop('jupytext')

    assert len(nb2.cells) == 7
    nb1.cells = nb1.cells[:5]
    nb2.cells = nb2.cells[:5]
    compare(nb2, nb1)
Esempio n. 5
0
def test_combine_reorder():
    nb_source = new_notebook(cells=[
        new_markdown_cell("Markdown text"),
        new_code_cell("1+1"),
        new_code_cell("2+2"),
        new_code_cell("3+3"),
        new_markdown_cell("Markdown text"),
        new_code_cell("4+4"),
    ])

    nb_outputs = new_notebook(cells=[
        new_markdown_cell("Markdown text"),
        new_code_cell("2+2"),
        new_code_cell("4+4"),
        new_code_cell("1+1"),
        new_code_cell("3+3"),
        new_markdown_cell("Markdown text"),
    ])

    nb_outputs.cells[1].outputs = ["4"]
    nb_outputs.cells[2].outputs = ["8"]
    nb_outputs.cells[3].outputs = ["2"]
    nb_outputs.cells[4].outputs = ["6"]

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[1].outputs == ["2"]
    assert nb_source.cells[2].outputs == ["4"]
    assert nb_source.cells[3].outputs == ["6"]
    assert nb_source.cells[5].outputs == ["8"]
Esempio n. 6
0
def test_combine_stable(nb_file):
    nb_org = jupytext.read(nb_file)
    nb_source = deepcopy(nb_org)
    nb_outputs = deepcopy(nb_org)

    for cell in nb_source.cells:
        cell.outputs = []

    combine_inputs_with_outputs(nb_source, nb_outputs)
    compare_notebooks(nb_source, nb_org)
Esempio n. 7
0
def test_combine_split():
    nb_source = new_notebook(cells=[new_code_cell("1+1"), new_code_cell("2+2")])

    nb_outputs = new_notebook(cells=[new_code_cell("1+1\n2+2")])

    nb_outputs.cells[0].outputs = ["4"]

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[0].outputs == []
    assert nb_source.cells[1].outputs == ["4"]
Esempio n. 8
0
def test_combine_split():
    nb_source = new_notebook(
        cells=[new_code_cell('1+1'),
               new_code_cell('2+2')])

    nb_outputs = new_notebook(cells=[new_code_cell('1+1\n2+2')])

    nb_outputs.cells[0].outputs = ['4']

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[0].outputs == []
    assert nb_source.cells[1].outputs == ['4']
Esempio n. 9
0
def test_combine_refactor():
    nb_source = new_notebook(
        cells=[new_code_cell("a=1"), new_code_cell("a+1"), new_code_cell("a+2")]
    )

    nb_outputs = new_notebook(
        cells=[new_code_cell("b=1"), new_code_cell("b+1"), new_code_cell("b+2")]
    )

    nb_outputs.cells[1].outputs = ["2"]
    nb_outputs.cells[2].outputs = ["3"]

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[0].outputs == []
    assert nb_source.cells[1].outputs == ["2"]
    assert nb_source.cells[2].outputs == ["3"]
Esempio n. 10
0
def test_write_reload_simple_notebook():
    nb1 = new_notebook(
        cells=[
            new_markdown_cell("A markdown cell", metadata={"md": "value"}),
            new_code_cell("1 + 1"),
            new_markdown_cell("A markdown cell", metadata={"md": "value"}),
            new_code_cell(
                """def f(x):
    return x""",
                metadata={"md": "value"},
            ),
            new_markdown_cell("A markdown cell", metadata={"md": "value"}),
            new_code_cell(
                """def g(x):
    return x


def h(x):
    return x
""",
                metadata={"md": "value"},
            ),
        ]
    )

    text = writes(nb1, "py:nomarker")
    nb2 = reads(text, "py:nomarker")
    combine_inputs_with_outputs(nb2, nb1, "py:nomarker")
    nb2.metadata.pop("jupytext")

    assert len(nb2.cells) == 7
    nb1.cells = nb1.cells[:5]
    nb2.cells = nb2.cells[:5]
    compare(nb2, nb1)

    with pytest.warns(DeprecationWarning, match="nomarker"):
        text = writes(nb2, "py:bare")
    with pytest.warns(DeprecationWarning, match="nomarker"):
        nb3 = reads(text, "py:bare")
    with pytest.warns(DeprecationWarning, match="nomarker"):
        combine_inputs_with_outputs(nb3, nb2, "py:bare")
    nb3.metadata.pop("jupytext")

    compare(nb3, nb2)
Esempio n. 11
0
def test_combine_refactor():
    nb_source = new_notebook(cells=[
        new_code_cell('a=1'),
        new_code_cell('a+1'),
        new_code_cell('a+2')
    ])

    nb_outputs = new_notebook(cells=[
        new_code_cell('b=1'),
        new_code_cell('b+1'),
        new_code_cell('b+2')
    ])

    nb_outputs.cells[1].outputs = ['2']
    nb_outputs.cells[2].outputs = ['3']

    combine_inputs_with_outputs(nb_source, nb_outputs)

    assert nb_source.cells[0].outputs == []
    assert nb_source.cells[1].outputs == ['2']
    assert nb_source.cells[2].outputs == ['3']
Esempio n. 12
0
def test_combine_md_version_one():
    markdown = """---
jupyter:
  jupytext:
    text_representation:
      extension: .md
      format_name: markdown
      format_version: '1.0'
      jupytext_version: 1.0.0
  kernelspec:
    display_name: Python 3
    language: python
    name: python3
---

A short markdown cell

```
a raw cell
```

```python
1 + 1
```
"""
    # notebook read from markdown file in version 1.0
    nb_source = jupytext.reads(markdown, 'md')

    # actual notebook has metadata
    nb_meta = jupytext.reads(markdown, 'md')
    for cell in nb_meta.cells:
        cell.metadata = {'key': 'value'}

    combine_inputs_with_outputs(nb_source, nb_meta)
    for cell in nb_source.cells:
        assert cell.metadata == {'key': 'value'}, cell.source
Esempio n. 13
0
def test_combine_attachments():
    nb_source = new_notebook(
        cells=[new_markdown_cell("![image.png](attachment:image.png)")]
    )

    nb_outputs = new_notebook(
        cells=[
            new_markdown_cell(
                "![image.png](attachment:image.png)",
                attachments={"image.png": {"image/png": "SOME_LONG_IMAGE_CODE...=="}},
            )
        ]
    )

    nb_source = combine_inputs_with_outputs(nb_source, nb_outputs)
    compare(nb_source, nb_outputs)