A patch release to fix compatibility with sqlalchemy <1.4.
- FIX: compatibility with SQLAlchemy < 1.4.0 #105 @DimitriPapadopoulos
This is a minor release to improve our packaging infrastructure and to support several new versions of dependencies.
‼️ BREAKING: Drop Python 3.7, add Python 3.11, unpin myst-nb in docs #96 (@choldgraf)
- Update nbclient requirement from <0.6,>=0.2 to >=0.2,<0.8 #103 (@choldgraf)
- UPDATE: SQLAlchemy 2.0 #93 (@jzluo, @choldgraf)
- 🔧 MAINTAIN: setuptools -> flit #82 (@chrisjsewell)
The following people contributed discussions, new ideas, code and documentation contributions, and review. See our definition of contributors.
(GitHub contributors page for this release)
@AakashGfude (activity) | @choldgraf (activity) | @chrisjsewell (activity) | @jstac (activity) | @jzluo (activity) | @kloczek (activity) | @pre-commit-ci (activity)
♻️ REFACTOR: package API/CLI/documentation (#74)
This release includes major re-writes to key parts of the package, to improve the user interface, and add additional functionality for reading and executing notebooks.
Key changes:
stage
/staging
is now rephrased tonotebook
, plus the addition ofproject
, i.e. you add notebooks to a project, then execute them.- notebook
read_data
is specified per notebook in the project, allowing for multiple types of file to be read/executed via the CLI (e.g. text-based notebooks via https://jupytext.readthedocs.io). Before, the read functions were passed directly to the API methods. - The executor can be specified with
jbcache execute --executor
, and a parallel notebook executor has been added. - Improved execution status indicator in
jbcache project list
and other CLI improvements. - Re-write of documentation, including better front page, with quick start guide and better logo.
Dependencies have also been restructured, such that the CLI dependencies (click
, tabulate
) are now required,
whereas nbdime
is now optional (since it is only used for optional notebook diffing).
The name of the SQL table nbstage
has been changed to nbproject
, and read_data
/exec_data
fields have been added to the nbproject
.
This means that reading will fail for caches creted using older versions of the package.
However, the version of jupyter-cache
, used to create the cache, is now recorded, allowing for the possibility of future automated migrations.
⬆️ Allow SQLAlchemy v1.4
🐛 FIX: nbfomat v4.5 cell IDs
Version 4.5 notebooks now contain cell.id
(see JEP 0062).
To deal with this, we always hash the notebooks as v4.4 (with ids removed), since IDs do not affect the execution output.
Merging cached outputs into a notebook now also preserves the input notebook minor version, adding or removing cell.id
where required.
⬆️ UPGRADE: nbclient v0.5
-
👌 IMPROVE: Add
allow_errors
execution option toJupyterExecutorBasic.run_and_cache
This can also be set in the notebook metadata:
nb.metadata.execution.allow_errors
-
👌 IMPROVE: Add
run_in_temp
execution option toJupyterExecutorBasic.run_and_cache
-
⬇️ DOWNGRADE: Relax pinning of nbclient
Since there are reports of issues with version 0.3, see: jupyter/nbclient#58
-
♻️ REFACTOR: Extract single notebook execution into separate function
Useful for upstream use.
- Moved execution functionality from nbconvert to nbclient
- Fixed UTF8 encoding (for Windows OS), thanks to @phaustin
- Moved testing from Travis CI to GitHub Actions (and added tests for Windows OS)