CWLDotNet 0.1.0
dotnet add package CWLDotNet --version 0.1.0
NuGet\Install-Package CWLDotNet -Version 0.1.0
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="CWLDotNet" Version="0.1.0" />
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用软件包。
paket add CWLDotNet --version 0.1.0
NuGet 团队不支持此客户端。请联系其 维护者 以获得支持。
#r "nuget: CWLDotNet, 0.1.0"
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。请将其复制到交互式工具或脚本源代码中,以引用软件包。
// Install CWLDotNet as a Cake Addin #addin nuget:?package=CWLDotNet&version=0.1.0 // Install CWLDotNet as a Cake Tool #tool nuget:?package=CWLDotNet&version=0.1.0
NuGet 团队不支持此客户端。请联系其 维护者 以获得支持。
CWLDotNet
该项目包含由 https://github.com/common-workflow-language/schema_salad 自动生成的 .Net 对象和工具,用于解析与 https://w3id.org/cwl/cwl 架构相对应的文档
用法
加载文档
// Specify the CWL file to load
Uri fileUri = new Uri(Path.GetFullPath("my-cwl-document.cwl"));
// Read the file contents
string fileContent = System.IO.File.ReadAllText(fileUri.AbsolutePath);
// Parse the CWL document
var doc = CWLDotNet.RootLoader.LoadDocument(fileContent, fileUri.AbsoluteUri);
// Work with the document
doc.Switch(
CommandLineTool => Console.WriteLine("The loaded document is a CommandLineTool"),
ExpressionTool => Console.WriteLine("The loaded document is a ExpressionTool"),
Workflow => Console.WriteLine("The loaded document is a Workflow"),
Operation => Console.WriteLine("The loaded document is an Operation"),
ListOf => Console.WriteLine("This is a list of one of: CommandLineTool | ExpressionTool | Workflow | Operation")
);
创建、编辑和序列化文档
using System.Text.Json;
using CWLDotNet;
// Create a CommandLineTool with empty inputs and outputs
CommandLineTool mytool = new CommandLineTool(new(),new());
// Set the base command
mytool.baseCommand = "echo";
// Create an input parameter with a default value
CommandInputParameter input1 = new CommandInputParameter(CWLType.INT);
input1.default_ = "Hello World!";
// Add the input to the tool
mytool.inputs.Add(input1);
// Serialize the tool
string outDoc = JsonSerializer.Serialize(mytool.Save());
文档
完整的文档(由DocFX自动生成),可以在此链接以下找到: https://common-workflow-lab.github.io/CWLDotNet/
局限性
CWLDotNet 只支持 CWL v1.2 语法。其他文档需要使用cwl-upgrader进行升级。
维护者
产品 | 版本 兼容的以及额外的计算目标框架版本。 |
---|---|
.NET | net6.0 支持。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
-
net6.0
- OneOf (>= 3.0.216)
- OneOf.Extended (>= 3.0.216)
- YamlDotNet (>= 11.2.1)
NuGet 包
此包未使用任何 NuGet 包。
GitHub 仓库
此包未使用任何流行的 GitHub 仓库。
版本 | 下载 | 最后更新 |
---|---|---|
0.1.0 | 224 | 6/27/2022 |