Open1

CWL で `basename` が複数 File や Directory に現れたときの挙動の調査

Tomoya TanjoTomoya Tanjo

以下は CWL v1.2 での挙動。他のバージョンだと明記されていない可能性がある。

File + File File + Directory Directory + Directory
Directory#listing エラー[1][2] エラー[1:1][2:1] マージ[3]
InitialWorkDirRequirement 片方のみ残る[4] 片方のみ残る[4:1] 片方のみ残る[4:2]
File#secondaryFiles エラー[5] エラー[5:1] エラー[5:2]
Workflow#outputs (仕様なし) リネーム 未調査 内部エラー (マージ?)

Workflow#outputs の項目は、ワークフローの各ステップでそれぞれ basename が同じ File や Directory が生成され、それらが出力オブジェクトに含まれてしまうケース。
cwltool の挙動は以下になる:

  • ファイル名を変更し、path フィールドおよび location フィールドに反映させる
  • basename はそのまま

Directory + Directory の場合、cwltool はディレクトリをマージしようとして失敗したように見えるエラーを返す。

脚注
  1. It is an error if a File shares a basename with any other entry in listing. ↩︎ ↩︎

  2. Name conflicts (the same basename appearing multiple times in listing or in any entry in secondaryFiles in the listing) is a fatal error. ↩︎ ↩︎

  3. If two or more Directory object share the same basename, this must be treated as equivalent to a single subdirectory with the listings recursively merged. ↩︎

  4. If the same File or Directory appears more than once in the InitialWorkDirRequirement listing, the implementation must choose exactly one value for path; how this value is chosen is undefined. ↩︎ ↩︎ ↩︎

  5. It is an error for file names to be duplicated in secondaryFiles. ↩︎ ↩︎ ↩︎