Jupyter Notebooks as Markdown Documents, Julia, Python or R scripts
This report summarizes scanner evidence for jupytext/jupytext, a Python project with 7,263 GitHub stars. SynthScan examined 60,415 lines of code across 591 source files, recording 894 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 17.3 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 813 finding(s).
Are imports declared and package/API names verified? 27 finding(s).
Are wrappers, guards, and repeated structures necessary? 607 finding(s).
Which changes need focused human review? 894 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 894 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 84 | def no_jupytext_version_number(): | CODE |
| LOW | tests/conftest.py | 469 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | tests/unit/test_labconfig.py | 26 | def sample_empty_viewer_config(): | CODE |
| LOW | tests/unit/test_labconfig.py | 41 | def test_set_unset_default_viewers(settings_file, sample_viewer_config, sample_empty_viewer_config): | CODE |
| LOW | tests/unit/test_stringparser.py | 46 | def test_long_string_with_four_quotes( | STRING |
| LOW | tests/unit/test_stringparser.py | 64 | def test_long_string_ends_with_four_quotes( | STRING |
| LOW | tests/unit/test_escape_magics.py | 49 | def test_force_noescape_with_gbl_esc_flag(line): | CODE |
| LOW | tests/unit/test_escape_magics.py | 54 | def test_force_escape_with_gbl_esc_flag(line): | CODE |
| LOW | tests/unit/test_escape_magics.py | 74 | def test_magics_commented_default(fmt, commented): | CODE |
| LOW | tests/unit/test_escape_magics.py | 88 | def test_jenner_macro_statements_preserved(fmt): | CODE |
| LOW | tests/unit/test_escape_magics.py | 105 | def test_read_jenner_commented_macro_preserved(): | CODE |
| LOW | tests/unit/test_escape_magics.py | 118 | def test_magics_are_commented(fmt): | CODE |
| LOW | tests/unit/test_escape_magics.py | 143 | def test_magics_are_not_commented(fmt): | CODE |
| LOW | tests/unit/test_escape_magics.py | 165 | async def test_force_comment_using_contents_manager(tmpdir, cm): | CODE |
| LOW | tests/unit/test_escape_magics.py | 214 | def test_comment_bash_commands_in_python(magic_cmd): | CODE |
| LOW | tests/unit/test_escape_magics.py | 223 | def test_do_not_comment_python_cmds(not_magic_cmd): | CODE |
| LOW⚡ | tests/unit/test_escape_magics.py | 234 | def test_markdown_image_is_not_magic(): | CODE |
| LOW⚡ | tests/unit/test_escape_magics.py | 239 | def test_question_is_not_magic(): | CODE |
| LOW⚡ | tests/unit/test_escape_magics.py | 245 | def test_whitespace_line_is_not_magic_and_is_fast(): | CODE |
| LOW | tests/unit/test_escape_magics.py | 256 | def test_multiline_python_magic(no_jupytext_version_number): | CODE |
| LOW | tests/unit/test_cell_id.py | 4 | def test_cell_id_is_not_random(): | CODE |
| LOW | tests/unit/test_quarto_temp_files.py | 36 | def test_quarto_does_not_convert_in_the_shared_temp_dir(convert, quarto_conversion_dirs): | CODE |
| LOW | tests/unit/test_markdown_in_code_cells.py | 11 | def test_three_backticks_or_more(): | CODE |
| LOW | tests/unit/test_markdown_in_code_cells.py | 20 | def test_triple_backticks_in_code_cell( | CODE |
| LOW | tests/unit/test_markdown_in_code_cells.py | 57 | def test_triple_backticks_in_code_cell_myst( | STRING |
| LOW | tests/unit/test_markdown_in_code_cells.py | 87 | def test_alternate_tree_four_five_backticks( | STRING |
| LOW⚡ | tests/unit/test_formats.py | 26 | def test_guess_format_percent(percent_file): | CODE |
| LOW⚡ | tests/unit/test_formats.py | 31 | def test_guess_format_simple_percent( | CODE |
| LOW⚡ | tests/unit/test_formats.py | 39 | def test_guess_format_simple_percent_with_magic( | STRING |
| LOW⚡ | tests/unit/test_formats.py | 48 | def test_guess_format_simple_hydrogen_with_magic( | STRING |
| LOW | tests/unit/test_formats.py | 62 | def test_guess_format_hydrogen(): | STRING |
| LOW⚡ | tests/unit/test_formats.py | 117 | def test_get_format_implementation(): | CODE |
| LOW⚡ | tests/unit/test_formats.py | 124 | def test_script_with_magics_not_percent( | CODE |
| LOW⚡ | tests/unit/test_formats.py | 131 | def test_script_with_spyder_cell_is_percent( | CODE |
| LOW⚡ | tests/unit/test_formats.py | 138 | def test_script_with_percent_cell_and_magic_is_hydrogen( | CODE |
| LOW⚡ | tests/unit/test_formats.py | 146 | def test_script_with_percent_cell_and_kernelspec( | STRING |
| LOW | tests/unit/test_formats.py | 162 | def test_script_with_spyder_cell_with_name_is_percent( | STRING |
| LOW | tests/unit/test_formats.py | 169 | def test_read_format_from_metadata( | CODE |
| LOW | tests/unit/test_formats.py | 184 | def test_update_jupytext_formats_metadata(): | CODE |
| LOW | tests/unit/test_formats.py | 232 | def test_rearrange_jupytext_metadata(): | CODE |
| LOW | tests/unit/test_formats.py | 246 | def test_rearrange_jupytext_metadata_metadata_filter(): | CODE |
| LOW | tests/unit/test_formats.py | 267 | def test_rearrange_jupytext_metadata_add_dot_in_suffix(): | CODE |
| LOW | tests/unit/test_formats.py | 335 | def test_pandoc_format_is_preserved(): | STRING |
| LOW | tests/unit/test_formats.py | 357 | def test_write_raises_when_fmt_does_not_exists(tmpdir): | CODE |
| LOW | tests/unit/test_formats.py | 403 | async def test_configuration_examples_from_documentation(config_file, config_contents, python_notebook, tmp_path, cm): | CODE |
| LOW | tests/unit/test_pep8.py | 14 | def test_next_instruction_is_function_or_class(): | CODE |
| LOW | tests/unit/test_pep8.py | 28 | def test_cell_ends_with_function_or_class(): | STRING |
| LOW | tests/unit/test_pep8.py | 115 | def test_paragraph_is_fully_commented(lines): | STRING |
| LOW | tests/unit/test_paired_paths.py | 57 | def test_paired_path_cannot_escape_notebook_tree(formats): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 70 | def test_absolute_paired_path_cannot_escape_root(os_sep, nb_file): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 79 | def test_base_path_in_tree_from_root(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 85 | def test_base_path_in_tree_from_non_root(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 90 | def test_base_path_in_tree_from_non_root_no_subfolder(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 98 | def test_full_path_in_tree_from_root(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 104 | def test_full_path_in_tree_from_root_no_subfolder(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 110 | def test_full_path_in_tree_from_non_root(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 115 | def test_paired_paths_windows(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 123 | def test_paired_paths_windows_no_subfolder(): | CODE |
| LOW⚡ | tests/unit/test_paired_paths.py | 131 | def test_paired_paths_windows_relative(): | CODE |
| LOW | tests/unit/test_paired_paths.py | 157 | def test_path_in_tree_limited_to_config_dir(tmpdir): | CODE |
| 492 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 1 | # Install the pre-commit hooks below with | COMMENT |
| LOW | pyproject.toml | 141 | [tool.hatch.build.hooks.jupyter-builder] | COMMENT |
| LOW | demo/World population.pct.py | 1 | # --- | COMMENT |
| LOW | demo/World population.pct.py | 21 | # | COMMENT |
| LOW | demo/World population.spx.py | 1 | # --- | COMMENT |
| LOW | demo/World population.lgt.py | 1 | # --- | COMMENT |
| LOW | demo/vscode/notebook.py | 1 | # --- | COMMENT |
| LOW | tests/unit/test_formats.py | 281 | } | COMMENT |
| LOW | …pynb_to_script_vscode_folding_markers/plotly_graphs.py | 1 | # --- | COMMENT |
| LOW | …scode_folding_markers/Notebook with many hash signs.py | 1 | # --- | COMMENT |
| LOW | …scode_folding_markers/Notebook with many hash signs.py | 21 | ################################################################## | COMMENT |
| LOW | …vscode_folding_markers/jupyter_with_raw_cell_on_top.py | 1 | # --- | COMMENT |
| LOW | …ing_markers/raw_cell_with_complex_yaml_like_content.py | 1 | # --- | COMMENT |
| LOW | …code_folding_markers/notebook_with_complex_metadata.py | 1 | # --- | COMMENT |
| LOW | …ript_vscode_folding_markers/text_outputs_and_images.py | 1 | # --- | COMMENT |
| LOW | …ipt_vscode_folding_markers/Line_breaks_in_LateX_305.py | 1 | # --- | COMMENT |
| LOW | …cript_vscode_folding_markers/nteract_with_parameter.py | 1 | # --- | COMMENT |
| LOW | …lding_markers/Notebook with metadata and long cells.py | 1 | # --- | COMMENT |
| LOW | …lding_markers/Notebook with metadata and long cells.py | 21 | # ```python | COMMENT |
| LOW | …lding_markers/Notebook with metadata and long cells.py | 41 | COMMENT | |
| LOW | …folding_markers/raw_cell_with_non_dict_yaml_content.py | 1 | # --- | COMMENT |
| LOW | …script_vscode_folding_markers/Notebook_with_R_magic.py | 1 | # --- | COMMENT |
| LOW | …script_vscode_folding_markers/Notebook_with_R_magic.py | 21 | # region language="R" | COMMENT |
| LOW | …ript_vscode_folding_markers/sample_rise_notebook_66.py | 1 | # --- | COMMENT |
| LOW | …/ipynb_to_script_vscode_folding_markers/frozen_cell.py | 1 | # --- | COMMENT |
| LOW | …scode_folding_markers/jupyter_with_raw_cell_in_body.py | 1 | # --- | COMMENT |
| LOW | …_folding_markers/Notebook with html and latex cells.py | 1 | # --- | COMMENT |
| LOW | …_folding_markers/Notebook with html and latex cells.py | 21 | # region language="R" | COMMENT |
| LOW | …arkers/Notebook with function and cell metadata 164.py | 1 | # --- | COMMENT |
| LOW | …lding_markers/convert_to_py_then_test_with_update83.py | 1 | # --- | COMMENT |
| LOW | …ing_markers/jupyter_with_raw_cell_with_invalid_yaml.py | 1 | # --- | COMMENT |
| LOW | …ipynb_to_script_vscode_folding_markers/cat_variable.py | 1 | # --- | COMMENT |
| LOW | …ipt_vscode_folding_markers/The flavors of raw cells.py | 1 | # --- | COMMENT |
| LOW | …ipt_vscode_folding_markers/The flavors of raw cells.py | 21 | # endregion | COMMENT |
| LOW | …code_folding_markers/Notebook_with_more_R_magic_111.py | 1 | # --- | COMMENT |
| LOW | …code_folding_markers/Notebook_with_more_R_magic_111.py | 21 | } | COMMENT |
| LOW | …pt_vscode_folding_markers/jupyterlab-slideshow_1441.py | 1 | # --- | COMMENT |
| LOW | …puts/ipynb_to_script_vscode_folding_markers/jupyter.py | 1 | # --- | COMMENT |
| LOW | …ta/notebooks/outputs/ipynb_to_percent/plotly_graphs.py | 1 | # --- | COMMENT |
| LOW | …tebooks/outputs/ipynb_to_percent/evcxr_jupyter_tour.rs | 1 | // --- | COMMENT |
| LOW | …tebooks/outputs/ipynb_to_percent/evcxr_jupyter_tour.rs | 161 | // ## Seeing what variables have been defined | COMMENT |
| LOW | …puts/ipynb_to_percent/Notebook with many hash signs.py | 1 | # --- | COMMENT |
| LOW | …puts/ipynb_to_percent/Notebook with many hash signs.py | 21 | # A comment | COMMENT |
| LOW | …tputs/ipynb_to_percent/jupyter_with_raw_cell_on_top.py | 1 | # --- | COMMENT |
| LOW | …_to_percent/raw_cell_with_complex_yaml_like_content.py | 1 | # --- | COMMENT |
| LOW | …uts/ipynb_to_percent/notebook_with_complex_metadata.py | 1 | # --- | COMMENT |
| LOW | …ks/outputs/ipynb_to_percent/text_outputs_and_images.py | 1 | # --- | COMMENT |
| LOW | …s/outputs/ipynb_to_percent/Line_breaks_in_LateX_305.py | 1 | # --- | COMMENT |
| LOW | …oks/outputs/ipynb_to_percent/nteract_with_parameter.py | 1 | # --- | COMMENT |
| LOW | …s/ipynb_to_percent/R notebook with invalid cell keys.R | 1 | # --- | COMMENT |
| LOW | …nb_to_percent/Notebook with metadata and long cells.py | 1 | # --- | COMMENT |
| LOW | …nb_to_percent/Notebook with metadata and long cells.py | 21 | # | COMMENT |
| LOW | …nb_to_percent/Notebook with metadata and long cells.py | 41 | COMMENT | |
| LOW | …ebooks/outputs/ipynb_to_percent/xcpp_by_quantstack.cpp | 1 | // --- | COMMENT |
| LOW | …ebooks/outputs/ipynb_to_percent/xcpp_by_quantstack.cpp | 21 | // border: 1px solid grey; | COMMENT |
| LOW | …ebooks/outputs/ipynb_to_percent/xcpp_by_quantstack.cpp | 201 | // ... and also lambda, universal references, `decltype`, etc ... | COMMENT |
| LOW | …ebooks/outputs/ipynb_to_percent/xcpp_by_quantstack.cpp | 361 | // | COMMENT |
| LOW | …pynb_to_percent/raw_cell_with_non_dict_yaml_content.py | 1 | # --- | COMMENT |
| LOW | …books/outputs/ipynb_to_percent/sample_bash_notebook.sh | 1 | # --- | COMMENT |
| LOW | …ynb_to_percent/R notebook with invalid cell keys.low.r | 1 | # --- | COMMENT |
| 145 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ipt_vscode_folding_markers/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …s/outputs/ipynb_to_percent/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …ks/outputs/ipynb_to_script/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …/outputs/ipynb_to_hydrogen/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …ks/outputs/ipynb_to_marimo/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …ks/outputs/ipynb_to_sphinx/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …script_vim_folding_markers/Line_breaks_in_LateX_305.py | 0 | this cell uses the triple quote cell markers introduced at https://github.com/mwouts/jupytext/issues/305 $$ \begin{align | STRING |
| HIGH | …lding_markers/Notebook with metadata and long cells.py | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …nb_to_percent/Notebook with metadata and long cells.py | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …s/ipynb_to_md/Notebook with metadata and long cells.md | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …ynb_to_script/Notebook with metadata and long cells.py | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …b_to_hydrogen/Notebook with metadata and long cells.py | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …ipynb_to_myst/Notebook with metadata and long cells.md | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …lding_markers/Notebook with metadata and long cells.py | 0 | this is a code cell with metadata `{"tags":["parameters"], ".class":null}` | STRING |
| HIGH | …pynb_to_script_vscode_folding_markers/jupyter_again.py | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …ta/notebooks/outputs/ipynb_to_percent/jupyter_again.py | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …ata/notebooks/outputs/ipynb_to_pandoc/jupyter_again.md | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …ts/data/notebooks/outputs/ipynb_to_md/jupyter_again.md | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …ata/notebooks/outputs/ipynb_to_script/jupyter_again.py | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …a/notebooks/outputs/ipynb_to_hydrogen/jupyter_again.py | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …/data/notebooks/outputs/ipynb_to_myst/jupyter_again.md | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …ata/notebooks/outputs/ipynb_to_sphinx/jupyter_again.py | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | …s/ipynb_to_script_vim_folding_markers/jupyter_again.py | 0 | title: "quick test" output: ioslides_presentation: widescreen: true smaller: true editor_options: chunk_output_type cons | STRING |
| HIGH | tests/functional/simple_notebooks/test_ipynb_to_rmd.py | 0 | test that writing the notebook with r, and read again, is the same as removing outputs | STRING |
| HIGH | tests/functional/simple_notebooks/test_ipynb_to_py.py | 0 | test that writing the notebook with r, and read again, is the same as removing outputs | STRING |
| HIGH | tests/functional/simple_notebooks/test_ipynb_to_R.py | 0 | test that writing the notebook with r, and read again, is the same as removing outputs | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/jupytext/sync_contentsmanager.py | 755 | except ImportError: | CODE |
| HIGH | src/jupytext/sync_contentsmanager.py | 444 | except OverflowError: | CODE |
| HIGH | src/jupytext/sync_contentsmanager.py | 551 | except Exception: | CODE |
| HIGH | src/jupytext/sync_contentsmanager.py | 643 | except HTTPError: | CODE |
| HIGH | src/jupytext/cell_metadata.py | 393 | except JSONDecodeError: | CODE |
| HIGH | src/jupytext/cell_metadata.py | 401 | except (ValueError, SyntaxError): | CODE |
| HIGH | src/jupytext/quarto.py | 102 | except yaml.YAMLError: | CODE |
| HIGH | src/jupytext/formats.py | 402 | except nbformat.reader.NotJSONError: | CODE |
| HIGH | src/jupytext/myst.py | 102 | except (yaml.parser.ParserError, yaml.scanner.ScannerError): | CODE |
| HIGH | src/jupytext/myst.py | 112 | except AttributeError: | CODE |
| HIGH | src/jupytext/async_contentsmanager.py | 676 | except ImportError: | CODE |
| HIGH | src/jupytext/async_contentsmanager.py | 390 | except OverflowError: | CODE |
| HIGH | src/jupytext/async_contentsmanager.py | 488 | except Exception: | CODE |
| HIGH | src/jupytext/async_contentsmanager.py | 574 | except HTTPError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 415 | CODE | |
| LOW | tests/external/docs/test_using_cli.py | 17 | CODE | |
| LOW | tests/functional/config/test_config.py | 103 | CODE | |
| LOW | src/jupytext/sync_contentsmanager.py | 56 | CODE | |
| LOW | src/jupytext/sync_contentsmanager.py | 703 | CODE | |
| LOW | src/jupytext/config.py | 379 | CODE | |
| LOW | src/jupytext/combine.py | 119 | CODE | |
| LOW | src/jupytext/cell_metadata.py | 81 | CODE | |
| LOW | src/jupytext/cell_metadata.py | 126 | CODE | |
| LOW | src/jupytext/cell_metadata.py | 192 | CODE | |
| LOW | src/jupytext/cell_metadata.py | 466 | CODE | |
| LOW | src/jupytext/cell_metadata.py | 166 | CODE | |
| LOW | src/jupytext/header.py | 59 | CODE | |
| LOW | src/jupytext/header.py | 105 | CODE | |
| LOW | src/jupytext/header.py | 148 | CODE | |
| LOW | src/jupytext/header.py | 169 | CODE | |
| LOW | src/jupytext/header.py | 310 | CODE | |
| LOW | src/jupytext/cell_reader.py | 213 | CODE | |
| LOW | src/jupytext/cell_reader.py | 286 | CODE | |
| LOW | src/jupytext/cell_reader.py | 391 | CODE | |
| LOW | src/jupytext/cell_reader.py | 515 | CODE | |
| LOW | src/jupytext/cell_reader.py | 556 | CODE | |
| LOW | src/jupytext/cell_reader.py | 631 | CODE | |
| LOW | src/jupytext/cell_reader.py | 706 | CODE | |
| LOW | src/jupytext/cell_reader.py | 801 | CODE | |
| LOW | src/jupytext/cell_reader.py | 900 | CODE | |
| LOW | src/jupytext/paired_paths.py | 112 | CODE | |
| LOW | src/jupytext/quarto.py | 75 | CODE | |
| LOW | src/jupytext/metadata_filter.py | 84 | CODE | |
| LOW | src/jupytext/cli.py | 344 | CODE | |
| LOW | src/jupytext/cli.py | 513 | CODE | |
| LOW | src/jupytext/cli.py | 1202 | CODE | |
| LOW | src/jupytext/cli.py | 818 | CODE | |
| LOW | src/jupytext/formats.py | 749 | CODE | |
| LOW | src/jupytext/myst.py | 70 | CODE | |
| LOW | src/jupytext/myst.py | 196 | CODE | |
| LOW | src/jupytext/myst.py | 244 | CODE | |
| LOW | src/jupytext/myst.py | 353 | CODE | |
| LOW | src/jupytext/languages.py | 160 | CODE | |
| LOW | src/jupytext/languages.py | 199 | CODE | |
| LOW | src/jupytext/compare.py | 175 | CODE | |
| LOW | src/jupytext/async_contentsmanager.py | 50 | CODE | |
| LOW | src/jupytext/async_contentsmanager.py | 632 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/external/pre_commit/test_pre_commit_mode.py | 127 | assert "git reset test.py && git checkout -- test.py" in out.err | STRING |
| HIGH⚡ | tests/external/pre_commit/test_pre_commit_mode.py | 128 | assert "git reset test.ipynb && git checkout -- test.ipynb" in out.err | STRING |
| HIGH | …lding_markers/Notebook with metadata and long cells.py | 49 | """This is a code cell with metadata `{"tags":["parameters"], ".class":null}`""" | STRING |
| HIGH | …nb_to_percent/Notebook with metadata and long cells.py | 49 | """This is a code cell with metadata `{"tags":["parameters"], ".class":null}`""" | STRING |
| HIGH | …ynb_to_script/Notebook with metadata and long cells.py | 46 | """This is a code cell with metadata `{"tags":["parameters"], ".class":null}`""" | STRING |
| HIGH | …b_to_hydrogen/Notebook with metadata and long cells.py | 49 | """This is a code cell with metadata `{"tags":["parameters"], ".class":null}`""" | STRING |
| HIGH | …lding_markers/Notebook with metadata and long cells.py | 49 | """This is a code cell with metadata `{"tags":["parameters"], ".class":null}`""" | STRING |
| HIGH⚡ | …sts/functional/simple_notebooks/test_read_simple_go.py | 140 | // !*rm -f go.work && go work init && go work use . ${HOME}/Projects/gopjrt | COMMENT |
| HIGH⚡ | …sts/functional/simple_notebooks/test_read_simple_go.py | 150 | == """!*rm -f go.work && go work init && go work use . ${HOME}/Projects/gopjrt | STRING |
| HIGH | tests/functional/cli/test_cli.py | 779 | jupytext([tmp_ipynb, "--update-metadata", '{"jupytext":{"main_language":null}}']) | CODE |
| HIGH | tests/functional/cli/test_cli.py | 401 | jupytext(["--to", "py", tmp_ipynb, "--update-metadata", '{"jupytext":{"formats":null}}']) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …s/integration/contents_manager/test_contentsmanager.py | 1993 | # Create a simple Python file without jupytext metadata | STRING |
| MEDIUM | tests/external/pre_commit/test_pre_commit_scripts.py | 74 | # Create a notebook that is not paired | COMMENT |
| MEDIUM | …functional/simple_notebooks/test_read_simple_python.py | 153 | # This file is non-pep8 as the function below has | COMMENT |
| MEDIUM | tests/functional/others/test_remove_encoding.py | 10 | # Create a contents manager | COMMENT |
| MEDIUM | tests/functional/cli/test_cli.py | 1465 | # Create a simple Python file without jupytext metadata | COMMENT |
| MEDIUM | src/jupytext/cli.py | 872 | # Create a temporary file in the same directory as path. Later on we will move | COMMENT |
| MEDIUM⚡ | src/jupytext/compare.py | 341 | """This function is used in the tests""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | website/src/content/docs/reference/faq.md | 78 | ## I have modified a text file, but git reports no diff for the paired `.ipynb` file | COMMENT |
| HIGH | tests/data/notebooks/inputs/sphinx/plot_notebook.py | 52 | # In this example the next block of code produces some plotable data. Code is | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | jupyterlab/jupyterlab_jupytext/__init__.py | 62 | except Exception: | CODE |
| LOW | src/jupytext/sync_contentsmanager.py | 197 | except Exception as e: | CODE |
| LOW | src/jupytext/sync_contentsmanager.py | 265 | except Exception as err: | CODE |
| LOW | src/jupytext/sync_contentsmanager.py | 454 | except Exception as err: | CODE |
| LOW | src/jupytext/sync_contentsmanager.py | 551 | except Exception: | CODE |
| LOW | src/jupytext/sync_contentsmanager.py | 569 | except Exception as err: | CODE |
| LOW | src/jupytext/cli.py | 504 | except Exception as err: | CODE |
| LOW | src/jupytext/myst.py | 236 | except Exception as err: | CODE |
| LOW | src/jupytext/async_contentsmanager.py | 173 | except Exception as e: | CODE |
| LOW | src/jupytext/async_contentsmanager.py | 235 | except Exception as err: | CODE |
| LOW | src/jupytext/async_contentsmanager.py | 400 | except Exception as err: | CODE |
| LOW | src/jupytext/async_contentsmanager.py | 488 | except Exception: | CODE |
| LOW | src/jupytext/async_contentsmanager.py | 504 | except Exception as err: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/jupytext/sync_contentsmanager.py | 754 | CODE | |
| LOW | src/jupytext/__init__.py | 3 | CODE | |
| LOW | src/jupytext/__init__.py | 3 | CODE | |
| LOW | src/jupytext/__init__.py | 3 | CODE | |
| LOW | src/jupytext/__init__.py | 4 | CODE | |
| LOW | src/jupytext/__init__.py | 4 | CODE | |
| LOW | src/jupytext/__init__.py | 4 | CODE | |
| LOW | src/jupytext/__init__.py | 4 | CODE | |
| LOW | src/jupytext/__init__.py | 6 | CODE | |
| LOW | src/jupytext/async_contentsmanager.py | 675 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …l/simple_external_notebooks/test_read_simple_pandoc.py | 13 | markdown="""# Lorem ipsum | CODE |
| LOW⚡ | …l/simple_external_notebooks/test_read_simple_pandoc.py | 15 | **Lorem ipsum** dolor sit amet, consectetur adipiscing elit. Nunc luctus | CODE |
| LOW⚡ | …l/simple_external_notebooks/test_read_simple_pandoc.py | 15 | **Lorem ipsum** dolor sit amet, consectetur adipiscing elit. Nunc luctus | CODE |
| LOW | …l/simple_external_notebooks/test_read_simple_pandoc.py | 38 | **Lorem ipsum** dolor sit amet, consectetur adipiscing elit. Nunc luctus | CODE |
| LOW | …l/simple_external_notebooks/test_read_simple_pandoc.py | 38 | **Lorem ipsum** dolor sit amet, consectetur adipiscing elit. Nunc luctus | CODE |
| LOW | …nctional/simple_notebooks/test_read_simple_markdown.py | 860 | "author": "John Doe", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/vscode/notebook.py | 23 | # 💡 Tip: don't forget to hit "Save" before | COMMENT |
| LOW | demo/vscode/notebook.py | 23 | # 💡 Tip: don't forget to hit "Save" before | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/jupytext/config.py | 242 | # Check if one of the paired format matches the current path | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/jupytext/__init__.py | 28 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/jupytext/compare.py | 175 | CODE |