Releases: mwouts/jupytext
Releases · mwouts/jupytext
Version 1.19.0.dev0
1.19.0.dev0 (2025-11-16)
Changes
The environment used to develop Jupytext is now maintained using Pixi (#1459)
Fixed
- We have fixed the round trip tests and made them work with Quarto 1.8.25 (#1435)
- We have fixed warnings about the cell ids like either
Cell is missing an id fieldorAdditional properties are not allowed ('id' was unexpected)when converting to some formats, including Pandoc (#1464)
Added
We have added a new py:marimo format, which uses the marimo command line interface to convert notebooks to and from the Marimo format (#1431)
Version 1.18.1
Fixed
- Fixed test
test_check_source_is_newer_when_using_jupytext_syncto work reliably on systems with low filesystem timestamp resolution (#1460)
Changed
- We now use
pixito maintain the local Python environments used for developing and testing Jupytext.
Version 1.18.0
Added
- The documentation has a chapter on the Jupytext Sync extension for VS Code (#1395)
- We have added a new option
--check-source-is-newerto the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file. - We have added a section on Jupyter Collaboration which also provides a very useful autoreload functionality (#406, #1401)
- Pairing groups allow you to define different pairing configurations for specific subsets of notebooks. The
formatsconfiguration option now supports a list of format dictionaries for first-match pairing. Use[[formats]]sections in your TOML configuration to define multiple format specifications, where the first matching format is used. This allows applying different pairing rules to notebooks in different locations, such as generating documentation markdown files only for tutorial notebooks (#1383) - We have added more tests to document the complex pairing formats, which also work on Windows (#1028)
- Pairing into nested folders was fixed on Windows (#1028)
- Jupytext is now tested with Python 3.14 (#1456)
Fixed
- The Jupytext CLI now detects if a file it has read or consulted has been modified while it was processing it. That can happen in the context of the Jupytext Sync extension for VS Code (#1411, vscode-jupytext-sync-#12). When such a synchronous modification is detected, Jupytext now raises an error. Many thanks to Anne Archibald for reporting the issue and preparing an inspiring PR (#1417).
- We don't import
notebookwhenjupyter_serveris available (#1436) - Jupytext now supports more characters in the cell metadata keys, to improve compatibility with
jupyterlab-slideshow(#1441). Thanks to Nicolas Thierry for this fix. - The function
find_jupytext_configuration_filenow works with relative directories (#1440). This fix was contributed by Thierry Parmentelat. - We have fixed a parsing error for R Markdown files (#1429)
- We have fixed a parsing error when the first cell of the notebook contains a YAML header that is not a dict (#1444)
Changed
- We have updated the pre-commit hooks. The code is now formatted using
ruff format, and updated for Python 3.9+ using https://github.com/asottile/pyupgrade (#1423)
Version 1.18.0rc0
Added
- The documentation has a chapter on the Jupytext Sync extension for VS Code (#1395)
- We have added a new option
--check-source-is-newerto the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file. - We have added a section on Jupyter Collaboration which also provides a very useful autoreload functionality (#406, #1401)
- Pairing groups allow you to define different pairing configurations for specific subsets of notebooks. The
formatsconfiguration option now supports a list of format dictionaries for first-match pairing. Use[[formats]]sections in your TOML configuration to define multiple format specifications, where the first matching format is used. This allows applying different pairing rules to notebooks in different locations, such as generating documentation markdown files only for tutorial notebooks (#1383) - We have added more tests do document the complex pairing formats, which also work on Windows (#1028)
- Pairing into nested folders was fixed on Windows (#1028)
- Jupytext is now tested with Python 3.14 (#1456)
Fixed
- The Jupytext CLI now detects if a file it has read or consulted has been modified while it was processing it. That can happen in the context of the Jupytext Sync extension for VS Code (#1411, vscode-jupytext-sync-#12). When such a synchronous modification is detected, Jupytext now raises an error. Many thanks to Anne Archibald for reporting the issue and preparing an inspiring PR (#1417).
- We don't import
notebookwhenjupyter_serveris available (#1436) - Jupytext now support more characters in the cell metadata keys, to improve compatibility with
jupyterlab-slideshow(#1441). Thanks to Nicolas Thierry for this fix. - The function
find_jupytext_configuration_filenow works with relative directories (#1440). This fix was contributed by Thierry Parmentelat. - We have fixed a parsing error for R Markdown files (#1429)
Changed
- We have updated the pre-commit hooks. The code is now formatted using
ruff format, and updated for Python 3.9+ using https://github.com/asottile/pyupgrade (#1423)
Version 1.17.3
Added
- All the extensions supported by Jupytext now appear in the
--toparagraph ofjupytext --help(#433) - We have added a new function
get_formats_from_notebook_paththat returns the list of paired
formats for a given notebook (#1419)
Fixed
- We have fixed
jupytext --sync, and the contents manager, to make sure that a simple.pyfile (not in the percent format) will not be treated as a paired file when the Jupytext configuration file hasformats="ipynb,py:percent"(#1418) - A notebook can be moved in Jupyter even if that makes it unpaired (#1414)
- The test against
jupyter-fsnow installs itsfsextra dependency (#1398) - The
jupytext --synccommand now works correctly with symbolic links. Thanks to mccullerlp for reporting (#1407) and addressing (#1408) the problem! - Jupytext will look for
quarto.cmdon Windows. Thanks to mccullerlp for documenting the issue (#1406, #1409). - We have corrected the
jupytext --paired-pathscommand: it will now take the Jupytext configuration file, if any, into account (#1419)
Version 1.17.2
Fixed
- The
--set-formatsargument takes precedence over pre-existing pairing information in the notebook (#1386)
Changed
- We have removed Python 3.8 from the list of supported Python version, and from the CI, as it has reached its EOL
Added
- ROOT-flavored C++ notebooks can be paired to
.cppfiles - thanks to Steven Gardiner for this contribution (#1384)
Version 1.17.1
Fixed
- Renaming files other than notebooks will not load their content (#1376)
Version 1.17.0
Added
- The MyST frontmatter found in MyST Markdown notebooks can be mapped to a YAML header at the top of the Jupyter notebook. This way MyST notebooks in either the
md:mystoripynbformat can be used with MyST. Thanks to Ian Carroll for proposing and implementing this change (#1314) - The context menu has a "New Text Notebook" entry. Thanks to Mahendra Paipuri for this PR (#1365)!
Changed
- Jupytext's default contents manager is now derived from the asynchronous AsyncLargeFileManager. Thanks to Darshan Poudel for making this finally happen (#1328)!
- The percent format is now the default format for scripts. If you run
jupytext --to py notebook.ipynbyou now get apy:percentscript (use--to py:lightfor the light format) #1201 - The
rst2mdconversion now works withsphinx-gallery>=0.8. Thanks to Thomas J. Fan for fixing this! (#1334) - We have updated the JupyterLab extension dependencies (#1300, #1355, #1360). Thanks to Mahendra Paipuri for these PRs!
Fixed
- We have added and fixed round trip tests on MyST Markdown notebooks (#759, #789, #1267, #1317)
- The
--quietoption now works with the--pipemode of Jupytext CLI (#1305) - Jupytext is now compatible with the cell toolbar extension - thanks to Nicolas Brichet for the fix! (#1358)
- The project description on PyPI now uses absolute links (#1287)
Version 1.17.0rc2
Changed
- Jupytext's default contents manager is now derived from the asynchronous AsyncLargeFileManager. Thanks to Darshan Poudel for making this finally happen (#1328)!
- The MyST frontmatter found in MyST Markdown notebooks is now mapped to a YAML header at the top of the Jupyter notebook. This way MyST notebooks in either the
md:mystoripynbformat can be used with MyST. Thanks to Ian Carroll for proposing and implementing this change (#1314) - The percent format is now the default format for scripts. If you run
jupytext --to py notebook.ipynbyou now get apy:percentscript (use--to py:lightfor the light format) #1201 - The
rst2mdconversion now works withsphinx-gallery>=0.8. Thanks to Thomas J. Fan for fixing this! (#1334) - We have updated the JupyterLab extension dependencies (#1300, #1355, #1360). Thanks to Mahendra Paipuri for these PRs!
Added
- The context menu has a "New Text Notebook" entry. Thanks to Mahendra Paipuri for this PR (#1365)!
Fixed
- We have added and fixed round trip tests on MyST Markdown notebooks (#759, #789, #1267, #1317)
- The
--quietoption now works with the--pipemode of Jupytext CLI (#1305) - Jupytext is now compatible with the cell toolbar extension - thanks to Nicolas Brichet for the fix! (#1358)
- The project description on PyPI now uses absolute links (#1287)
Version 1.17.0rc1
Changed
- Jupytext's default contents manager is now derived from the asynchronous AsyncLargeFileManager. Thanks to Darshan Poudel for making this finally happen (#1328)!
- The MyST frontmatter found in MyST Markdown notebooks is now mapped to a YAML header at the top of the Jupyter notebook. This way MyST notebooks in either the
md:mystoripynbformat can be used with MyST. Thanks to Ian Carroll for proposing and implementing this change (#1314) - The percent format is now the default format for scripts. If you run
jupytext --to py notebook.ipynbyou now get apy:percentscript (use--to py:lightfor the light format) #1201 - The
rst2mdconversion now works withsphinx-gallery>=0.8. Thanks to Thomas J. Fan for fixing this! (#1334) - We have updated the JupyterLab extension dependencies (#1300, #1355, #1360). Thanks to Mahendra Paipuri for these PRs!
Added
- The context menu has a "New Text Notebook" entry. Thanks to Mahendra Paipuri for this PR (#1365)!
Fixed
- We have added and fixed round trip tests on MyST Markdown notebooks (#759, #789, #1267, #1317)
- The
--quietoption now works with the--pipemode of Jupytext CLI (#1305) - Jupytext is now compatible with the cell toolbar extension - thanks to Nicolas Brichet for the fix! (#1358)
- The project description on PyPI now uses absolute links (#1287)