基本笔记本检查。它们运行了吗?它们包含lint吗?
项目描述
nbsmoke
构建状态 | |
覆盖率 | |
最新开发版本 | |
最新版本 | |
Python |
基本笔记本烟雾测试:它们运行正常吗?它们包含lint吗?
此Pytest插件是用Cookiecutter和@hackebrot的Cookiecutter-pytest-plugin模板生成的。
安装
$ pip install nbsmoke
或获取最新预发布版
$ pip install --pre nbsmoke
nbsmoke也可以通过conda从anaconda.org获取
$ conda install -c conda-forge nbsmoke
用法
检查所有笔记本是否运行无误
$ pytest --nbsmoke-run
检查所有笔记本运行无误,并将HTML存储起来供之后查看
$ pytest --nbsmoke-run --store-html=/scratch
对笔记本进行lint检查
$ pytest --nbsmoke-lint
将lint失败仅作为警告
$ pytest --nbsmoke-lint --nbsmoke-lint-onlywarn
您可以为目录中的所有文件指定一个列表,例如。
$ pytest --nbsmoke-run notebooks/Untitled*.ipynb
如果您想限制pytest只运行您的笔记本测试,请使用 -k,例如:
$ pytest --nbsmoke-run -k ".ipynb"
通过在 setup.cfg、pytest.ini 或 tox.ini 中使用标准的 pytest 'ini' 配置,可以获得额外的选项。
[pytest]
# when running, seconds allowed per cell (see nbconvert timeout)
nbsmoke_cell_timeout = 600
# notebooks to skip running; one case insensitive re to match per line
nbsmoke_skip_run = ^.*skipme\.ipynb$
^.*skipmetoo.*$
# case insensitive re to match for file to be considered notebook;
# defaults to ``^.*\.ipynb``
it_is_nb_file = ^.*\.something$
# flakes you don't want to hear about (regex)
nbsmoke_flakes_to_ignore = .*hvplot.* imported but unused.*
# line magics to treat as being flakes (i.e. magics you don't want in your notebooks)
nbsmoke_flakes_line_magics_blacklist = pylab
# cell magics to treat as being flakes (i.e. magics you don't want in your notebooks)
nbsmoke_flakes_cell_magics_blacklist = bash
ruby
# add your own magic handlers (python file containing line_magic_handlers and cell_magic_handlers as dictionaries magic_name: callable)
nbsmoke_magic_handlers = path/to/file.py
nbsmoke支持# noqa
注释来标记在代码风格检查期间应该忽略的内容。
项目配置中的nbsmoke_skip_run
列表可以通过传递--ignore-nbsmoke-skip-run
来忽略(如果您有时想运行项目中通常跳过的所有笔记本)。
这有什么意义吗?
尽管可以对笔记本进行更复杂的测试(例如,参见nbval),但检查笔记本是否可以在新的内核中从开始到结束运行而不会出错(或在中立的CI服务上)在开发期间可能很有用。在多个项目中使用笔记本的实际经验证实了这一点,但这只是我所拥有的全部证据。
检查笔记本的代码风格可能看似微不足道/无意义,但它经常揭示未使用的名称(通常是未使用的导入)。也常见到Python 2与Python 3的问题,以及有时未定义的名称 - 这比在多个Python版本上运行笔记本要快。
未使用的导入/名称本身可能看似微不足道,但它们可能会阻碍读者对笔记本的理解,或者添加不必要的依赖项。
希望您在笔记本中没有神秘的(未使用的)导入,但如果有的话,您可以通过添加# noqa: explanation
来停止flake错误。例如,如果您是为了副作用而导入某些内容,那么通知读者这一点将非常有帮助。
使用Pyflakes作为底层代码检查器,因为“Pyflakes做出了一个简单的承诺:它永远不会对风格进行投诉,并且它会非常努力地尽量不发出误报。”
贡献
首先,使用pip install -e .
安装。然后使用tox
或pytest -v tests/
运行测试。
发布到PyPI的新版本:git tag -a vX.Y.Z -m "关于发布的某事" && git push --tags
。然后,conda-forge将自动打开PR,应该会合并。
通过添加--nbsmoke-lint-debug
来获取一些帮助以调试明显不正确的flakes,例如pytest -v --nbsmoke-lint --nbsmoke-lint-debug examples
。
许可证
在BSD-3许可证下分发,“nbsmoke”是免费和开源软件。
问题
如果您遇到任何问题,请提交问题(理想情况下包括任何有问题的笔记本的副本)。
项目详细信息
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。
源分布
构建分布
nbsmoke-0.6.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8b55333e2face27bc7ff80c266c468ca5633947cb0697727348020dd445b0874 |
|
MD5 | 69d35e2b002980348e93c4d83e2418f9 |
|
BLAKE2b-256 | 02770a2d244e0eb83d0ee905e3479c5a5e6e931a6aa0c7fccea7141bc337bb8f |
nbsmoke-0.6.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f75d394ef361bd5e9ab1ca5a2e4d73dc2007b6f4ab8f5897e4c1790228d71005 |
|
MD5 | 4abe1cc1d8bba8e9c17a7ca5a1b757bd |
|
BLAKE2b-256 | 0e06b1c75b57dd99e638ec8aaf112568e54842b3af9c4095b2c737f459e3b88a |