基本的笔记本检查。他们跑了吗?它们含有棉绒吗?

nbsmoke的Python项目详细描述


See Build Status on Travis CISee Build Status on AppVeyor

nbsmoke

基本的笔记本烟雾测试:他们运行正常吗?它们含有棉绒吗?

警告:概念的早期验证;工作正在进行中。用于 自担风险。

特别是,这个扩展应该作为 尽可能的,但还没有得到广泛的考验。


这个Pytest插件是用Cookiecutter@hackebrotCookiecutter-pytest-plugin模板生成的。

安装

您可以通过pipPyPI

安装nbsmoke
$ pip install nbsmoke

或者您可以通过condaanaconda.org安装nbsmoke:

$ conda install -c pyviz/label/dev -c conda-forge nbsmoke

使用量

检查所有笔记本是否正常运行:

$ pytest --nbsmoke-run

检查所有笔记本是否运行正常,并存储HTML以供查看 之后:

$ pytest --nbsmoke-run --store-html=/scratch

绒布检查笔记本:

$ pytest --nbsmoke-lint

您可以指定一个列表,而不是目录中的所有文件,例如:

$ pytest --nbsmoke-run notebooks/Untitled*.ipynb

如果要将pytest限制为只运行笔记本测试,请使用-k,例如:

$ pytest --nbsmoke-run -k ".ipynb"

标准pytest'ini'提供了其他选项 setup.cfg、pytest.ini或tox.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$

nbsmoke支持# noqa注释来标记 应在lint检查期间忽略。

可以忽略项目配置中的nbsmoke_skip_run列表 传递--ignore-nbsmoke-skip-run(如果有时您希望 运行所有笔记本)。

有什么意义?

尽管可以对笔记本电脑进行更复杂的测试(例如 NBVAL),只是检查笔记本是否从头到尾运行 新内核(或中性ci服务)中的错误可能很有用 在开发过程中。几项工作的实践经验 有笔记本的项目证实了这一点,但这就是我 有

检查笔记本上的皮棉可能看起来微不足道/毫无意义,但是 经常发现未使用的名称(通常是未使用的导入)。它也是 很常见的python2vs3问题,有时未定义 名字-以一种比运行笔记本更快的方式 多个版本的python)。

未使用的导入/名称本身可能看起来微不足道,但它们可以 妨碍读者理解笔记本,或添加依赖项 这不是必需的。

在笔记本中使用# noqa: explanation可能看起来有点过头了, 但其目的至少是迫使“神秘进口”成为 澄清(如果它们是必要的,理想情况下它们不应该 是的)。如果你要进口一些副作用的东西, 告诉读者这一点很有帮助,丑陋/奇怪的# noqa应该有助于提醒您解决潜在的问题…

因为“pyflakes使 简单的承诺:它不会抱怨风格,它会尝试 很难从不发出误报。”

贡献

首先,使用pip install -e .安装。然后使用运行测试 toxpytest -v tests/

pypi和anaconda.org的新版本:git tag -a vX.Y.Z -m "Something about release" && git push --tags

许可证

根据BSD-3许可证的条款分发,“nbsmoke” 是免费的开源软件。

问题

如果您遇到任何问题,请file an issue(理想情况下 包括任何有问题的笔记本的副本)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
amazon web services Java AWS s3:如何使用Md5预签名url设置和上载内容   twitter使用java从推文中排除一些单词   如何在GUI java中添加延迟时间   java程序,如何使用Outputstream发送两次消息   java为什么是javax。在将Yasson与JSONB一起使用时,Glassfish中的json需要作为依赖项吗?   如何从dist文件夹中读取文件   java如何获取与模式匹配的文件列表   java如何使用Intent从Android应用程序发送彩信?   java限制对Spring的依赖,同时又不丧失框架的功能   java是否将捕获异常报告给Firebase/Fabric等?   用jdbcjava实现mysql分页   给定URI的java注释检索   java是序列化/反序列化公共枚举的简单方法?   java如何使用jMockit模拟本机方法