{"categories":[{"label":"Testing","url":"https://skillfed.io/packages/category/software-development-testing/3"}],"enrichment":{"capability":"A pytest plugin that executes Jupyter notebooks as tests, with support for parallel execution, cell-level error handling, timeouts, and optional output writeback for documentation builds.","skillfed_tags":["jupyter-automation","documentation-testing","ci-integration"],"use_cases":["Validate that all code examples in a package's documentation notebooks execute without errors in CI.","Test ML training notebooks by mocking long-running cells and asserting outputs at checkpoints.","Ensure teaching material notebooks run end-to-end with current package versions before release.","Parallelize execution of a large repository of slow notebooks to reduce CI time.","Find missing imports across a directory of partially-working notebooks without running them to completion."],"what_it_does":"nbmake is a pytest plugin that treats Jupyter notebooks as executable test suites. It runs notebook cells sequentially using nbclient and the ipykernel, capturing output and failures just like pytest captures test results. You can configure cell timeouts, allow specific cells to raise exceptions, skip cells, mock variables mid-execution, and run post-cell assertions\u2014all via notebook metadata. The plugin integrates with pytest's standard discovery and reporting, and supports parallel execution via pytest-xdist for faster CI runs.\n\nThe primary use case is maintaining documentation notebooks that must stay runnable and up-to-date. Research and ML engineers use it to ensure teaching materials and package examples don't break as dependencies evolve. It can optionally write executed notebooks back to disk, speeding up builds for documentation tools like jupyter-book and nbsphinx that consume the output. The tool assumes notebooks are primarily developed interactively but consumed as rendered docs, not as live notebooks.","worth_installing":"Yes, if you maintain Jupyter notebooks as part of documentation, teaching materials, or package examples and want to automate their execution in CI. The low install friction and tight pytest integration make it straightforward to add. The aging maintenance status (599 days since last release) is a minor concern but not a blocker\u2014the project is active and has no known vulnerabilities. Not necessary if notebooks are only consumed as rendered HTML and never need to be re-executed."},"id":"nbmake","links":{"html":"https://skillfed.io/packages/nbmake","md":"https://skillfed.io/packages/nbmake.md","pypi":"https://pypi.org/project/nbmake/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2024-12-23","license_spdx":null,"license_treatment":"permissive","name":"nbmake","python_support":"supports_current","summary":"Pytest plugin for testing notebooks"},"popularity":{"monthly_downloads":618179,"position":5734,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"1.5.5"}
