跳转到主要内容

为niworkflows工具包的Pydra任务包

项目描述

https://github.com/nipype/pydra-niworkflows/actions/workflows/ci-cd.yaml/badge.svg https://codecov.io/gh/nipype/pydra-niworkflows/branch/main/graph/badge.svg?token=UIS0OGPST7 Supported Python versions Latest Version

此软件包包含一组为niworkflows工具包设计的Pydra任务接口。这个集合的基础是通过使用Nipype2Pydra工具将现有的Nipype接口半自动转换为Pydra而形成的。

自动生成任务与手动编辑任务

自动生成的任务可以在pydra.tasks.niworkflows.auto包中找到。这些包应该非常谨慎地处理,因为它们可能没有通过测试。经过编辑并通过测试的生成任务被导入到一或多个pydra.tasks.niworkflows.v*包中,这些包对应于它们设计的niworkflows工具包版本。

测试

此软件包包含一系列自动生成的测试模块。要安装运行测试所需依赖项

$ pip install -e .[test]

然后可以使用以下方式启动测试,包括doctests <https://docs.pythonlang.cn/3/library/doctest.html>`__

$ pytest --doctest-modules pydra/tasks/*

默认情况下,测试设置为在10秒后超时,之后假定底层工具已通过验证/初始化阶段,并假定它将运行到完成。要禁用此设置并运行测试直到完成,请执行以下操作

$ pytest --doctest-modules --timeout-pass 0 pydra/tasks/*

持续集成

此模板使用 GitHub Actions `__ 来运行测试并将软件包部署到PYPI。在GitHub上创建新版本或发布Nipype或Nipype2Pydra转换工具的新版本时,会构建和上传新软件包。由Nipype或Nipype2Pydra更新触发的发布,通过后缀 postN 表示,其中 N = <nipype-version><nipype2pydra-version> 去掉了“.”,例如 v0.2.3post185010 对应于此存储库的 v0.2.3 标签,并使用 Nipype2Pydra 0.1.0 自动生成软件包。

为该软件包做出贡献

开发者安装

安装与AFNI特定文件格式相对应的 fileformats 软件包

$ pip install -e ./related-packages/fileformats[dev]
$ pip install -e ./related-packages/fileformats-extras[dev]

从源目录安装repo并安装pre-commit以确保代码风格和质量的一致性。

$ pip install -e .[test,dev]
$ pre-commit install

接下来,安装运行自动转换脚本的要求,并从它们的Nipype对应物生成Pydra任务接口

$ pip install -r nipype-auto-conv/requirements.txt

运行转换脚本以将Nipype接口转换为Pydra

$ nipype-auto-conv/generate

方法论

此软件包的开发预计将有两个阶段

  1. 其中对应的Nipype接口被认为是基准,Pydra任务从它们生成

  2. 当Pydra任务被认为是成熟的,并且手动进行编辑时

不同的任务可能会在不同的时间成熟,因此可能存在1和2之间的中间阶段。

自动转换阶段

自动转换的Pydra任务是从它们相应的Nipype接口生成的,并结合位于 nipype-auto-conv/specs/ 的YAML规范中的“转换提示”。为了帮助自动转换器生成有效的pydra任务,需要手动编辑自文档化的转换规范。编辑一个或多个转换规范后,应通过运行以下命令重新生成 pydra.tasks.niworkflows.auto 软件包

$ nipype-auto-conv/generate

应在自动生成的任务上运行测试,以查看它们是否有效

$ pytest --doctest-modules pydra/tasks/niworkflows/auto/tests/test_<the-name-of-the-task-you-edited>.py

如果测试通过,则应编辑 pydra/tasks/niworkflows/v<tool-version>/__init__.py 文件,导入现在有效的任务接口,以表示它已通过验证并准备使用,例如

键入和样本测试数据

自动生成的测试将尝试使用基于字段类型的合理默认值提供要测试的任务实例。然而,这些值通常需要根据底层工具的文档进行手动覆盖。

对于基于文件的数据,将自动创建用于选定格式类型的文件系统对象,例如Nifti、Dicom。因此,在YAML规范的 inputs > typesoutputs > types 字典中,使用与 fileformats 类相对应的“mime-like”字符串指定文件格式非常重要。

如果fileformats中未实现所需的文件类型,请参阅 fileformats 文档 了解如何定义新的文件格式类型,并参阅 fileformats-medimage-extras 了解如何为它们实现生成样本数据的方法的示例。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

pydra_niworkflows-0.1.1.tar.gz (54.9 kB 查看哈希值)

上传时间

构建分布

pydra_niworkflows-0.1.1-py3-none-any.whl (71.3 kB 查看哈希值)

上传时间 Python 3