使用Jupyter Notebook创建令人愉悦的python项目

澳客彩票下载手机版下载✅【15bet.net】✅为中国访问最快的线路平台登录注册,欢迎大家收藏访问,澳客彩票下载手机版下载将为您提供国内顶尖的手机客户端app下载,带给你无限的激情!我们的宗旨在于让大家享受最贴心的服务!

nbdev 是一个库,可让您在 Jupyter笔记本,将您所有的代码,测试和文档放在一个地方。那就是:你现在有了一个真实的 识字编程 正如Donald Knuth在1983年所设想的那样!

nbdev 相较于传统的编程环境,调试和重构代码变得更加容易。此外,使用nbdev可以促进软件工程最佳实践,因为测试和文档是一流的公民。

开发人员经常在macOS和Linux上使用它。我们尚未在Windows上对其进行测试,并且并非所有功能都可以正常运行。

Nbdev的功能

nbdev 为开发人员提供以下工具:

  • 自动生成文档 来自Jupyter笔记本。这些文档是可搜索的,并且通过反省您在反引号中包含的关键字,可以自动将其超链接到相应的文档页面。
  • 实用工具 自动发布pypi和conda软件包 包括版本号管理。
  • 健壮, 笔记本和源代码之间的双向同步,您可以根据需要使用IDE进行代码导航或快速编辑。
  • 隐藏/显示单元格的细粒度控制:您可以选择隐藏整个单元格,仅隐藏输出,或仅隐藏输入。此外,您可以将单元格嵌入默认情况下处于打开或关闭状态的可折叠元素中。
  • 能够 直接在笔记本中编写测试 无需学习特殊的API。这些测试是通过单个CLI命令并行执行的。您甚至可以定义某些测试组,从而不必始终运行长时间运行的测试。
  • 的工具 合并/冲突解决 与笔记本在 可读格式.
  • 持续集成(CI)为您设置 GitHub动作 开箱即用,它将自动为您运行测试。即使您不熟悉CI或GitHub Action,它也可以立即为您开始工作,而无需任何人工干预。
  • 与GitHub Pages集成以进行文档托管:nbdev允许您使用GitHub页面轻松免费地免费托管文档。
  • 创建Python模块,如下 最佳做法,例如自动定义 __all__ (更多细节)以及导出的函数,类和变量。
  • 数学方程式支持 with LaTeX.
  • ... 以及更多!见 入门 以下部分以获取更多信息。

一个激励人的例子

例如,让我们定义一个代表纸牌的类,并在Jupyter Notebook中使用相关的文档和测试:

image.png

In the above screenshot, we have code, tests and documentation in one context! nbdev renders this into searchable docs (which are optionally hosted for free on GitHub Pages). Below is an annotated screenshot of the generated docs for further explanation:

image.png

上图是以下内容的子集 这个nbdev教程,带有一个最小的示例,它使用来自的代码 认为Python 2 by Allen Downey.

注释说明:

  1. 标题 卡片 corresponds to the first H1 heading in a notebook with a note block API详细信息 as the summary.
  2. nbdev 自动为您呈现一个目录。
  3. nbdev 自动将您的类或函数的签名呈现为标题。
  4. 定义代码的单元格将被隐藏,并由函数的标准文档替换,显示其名称,参数,文档字符串以及指向github上源代码的链接。
  5. 这部分文档是从文档字符串自动呈现的。
  6. 笔记本的其余部分照常渲染。您可以使用来隐藏整个单元格,仅隐藏单元格输入或仅隐藏输出 本页描述的标志.
  7. nbdev支持特殊的块引号,这些引号在文档中显示为彩色框。您可以阅读有关它们的更多信息 这里. In this specific example, we are using the Note block quote.
  8. Words you surround in backticks will be automatically hyperlinked to the associated documentation where appropriate. This is a trivial case where 卡片 class is defined immediately above, however this works across pages and modules. We will see another example of this in later steps.

正在安装

nbdev is on PyPI and conda so you can just run pip install nbdev or conda install -c fastai nbdev.

可编辑的安装,请使用以下命令:

git clone //github.com/fastai/nbdev
pip install -e nbdev

nbdev is tested to work on Ubuntu, Macos and Windows, for the versions tagged with the -latest suffix in 这些文件.

Note that nbdev must be installed into the same python environment that you use for both your Jupyter Server and your workspace.

入门

以下是有关nbdev入门的有用资源:

如果有人告诉您不应该使用笔记本进行软件开发

看这个视频.

贡献

If you want to contribute to nbdev, be sure to review the 贡献准则。该项目符合fastai`s 行为守则。通过参与,您将遵守此代码。通常,fastai项目致力于遵守开源软件开发中公认的最佳实践。

确保通过运行安装了我们使用的git钩子

nbdev_install_git_hooks

在克隆的存储库文件夹中。

版权

从2019年起,fast.ai,Inc.版权所有。已获得Apache许可,其版本为2.0版(以下简称“许可”);除非遵守许可,否则您不得使用该项目的文件。此存储库中的LICENSE文件中提供了许可证的副本。

附录

nbdev和fastai

nbdev 已用于构建许多开发人员使用的创新软件,例如 法斯特,是一个深度学习库,它实现了 独特的分层api和回调系统, 和 快速核心, an extension to the Python programming language. Furthermore, nbdev allows a very small number of developers to maintain and grow a 大型生态系统 软件工程,数据科学,机器学习和devop工具的领域。

Here, for instance, is how combined_cos is defined and documented in the 法斯特 library:

从nbdev导出
在一个单元格中定义的功能示例(标记有导出标志),并在以下单元格中以可视化示例进行说明