Nbdev: A literate programming environment that democratizes software engineering best practices

· Source: Hamel Husain's Blog · Field: Technology & Digital — Software Development & Engineering, Artificial Intelligence & Machine Learning, Data Science & Analytics · Depth: Intermediate, short

Summary

GitHub, in collaboration with fastai, has developed nbdev, a new literate programming environment for Python, released on November 20, 2020. This tool aims to democratize software development by integrating best practices like continuous integration, distribution, and documentation directly into Jupyter notebooks. nbdev automates the generation of searchable documentation hosted on GitHub Pages, sets up continuous integration with GitHub Actions for unit testing, and is fully compatible with GitHub Codespaces for easy setup. It also provides a two-way sync between notebooks and source code, allows in-notebook test writing, offers merge/conflict resolution for notebooks, and automates publishing to pypi and conda. This environment promotes higher quality software by removing friction from writing documentation and tests.

Key takeaway

For Python developers seeking to streamline their workflow and adhere to software engineering best practices, nbdev offers a compelling solution. You should consider adopting nbdev to integrate documentation, testing, and continuous integration directly within your Jupyter notebooks. This approach can significantly reduce friction in your development process, leading to more robust and well-documented software without needing to learn separate tools or APIs.

Key insights

nbdev integrates software engineering best practices directly into Jupyter notebooks, simplifying development workflows.

Principles

Method

nbdev builds on Jupyter notebooks, generating docs, setting up CI/CD, and enabling in-notebook testing and package publishing.

In practice

Topics

Code references

Best for: AI Engineer, NLP Engineer, Computer Vision Engineer, Software Engineer, Machine Learning Engineer, MLOps Engineer

Related on AIssential

Open in AIssential →

Editorial summary, takeaway, and curation by AIssential. Original article published by Hamel Husain's Blog.