python的fork cwlgen以编程方式生成cwl。可用类型:命令行工具、工作流和需求
illusional.cwlgen的Python项目详细描述
python cwlgen
(来自原始存储库)
python cwlgen是一个用于以编程方式生成cwl的python库。 它支持命令行工具、工作流和DockerRequirement的生成。 该库适用于Python2.7.12+和3.6.0。
我使用这个存储库是为了在没有 过分担心正确的礼仪。我已经并将继续提交合并请求 回到original repository。
通用工作流语言
Common Workflow Language (CWL)是一种描述工作流的方法, 以及它可能使用的任何工具(软件)。这是user guide 对其目标是什么以及如何实现这些目标给出一个温和(更好)的解释,但范围很广:
- 停止为长时间复杂的作业编写bash脚本。
- 把管道带到任何地方(可移植性)。
- 尝试实施再现性指南。
这个python存储库只是most类(正在工作)的python包装器, 允许您用python构建工作流的结构,并让这个模块为您生成和导出cwl。
nb:这不会对您的工作流程或命令行工具进行健全性检查或质量检查,请使用 CWLTool或WOMTool表示。
快速入门指南
这是通过PIP提供的!
pip install illusional.cwlgen
它是怎么工作的?
cwl规范有一个非常接近的副本(Workflow)| CommandLineTool),其中python类映射cwl规范。 这个存储库还包含一些docstring,为您提供类及其属性的上下文。
我试图包含到类文档的直接链接,但是这并不总是可能的。
在examples/
文件夹中有一些小例子,但是对于您需要的任何类,您只需初始化
例如:
创建命令行工具
# if using gitsubmodules, you can use the following import statementimportcwlgenascwltool_object=cwl.CommandLineTool(cwltool_id="echo-tool",base_command="echo",label=None,doc=None,cwl_version="v1.0",stdin=None,stderr=None,stdout=None,path=None)tool_object.inputs.append(cwl.CommandInputParameter("myParamId",label=None,secondary_files=None,param_format=None,streamable=None,doc=None,input_binding=None,default=None,param_type=None))# fill in the fields as required# to get the dictionary representation:dict_to_export=tool_object.get_dict()# dump using a yaml exporteryaml.dump(dict_to_export)
所有的类都应该以类似的方式工作。我已经从fork中删除了literal
表示
目前不想使用ruamel。否则就提出问题,我会调查的。