Skip to content
This repository was archived by the owner on Jun 9, 2020. It is now read-only.
This repository was archived by the owner on Jun 9, 2020. It is now read-only.

Deprecating cwlgen and migrating to CWL-Utils #27

@illusional

Description

@illusional

There have been advancements in the schema-salad to generate Python classes that more directly mirror the functionality this project provides. As a consequence, it's probably worth investigating migrating some of the generator tests to the new repo and deprecating this project.

I've used the grammar from common-workflow-language/cwl-utils#5 for these initial tests. From migrating some of the cwlgen tests, I've noticed some differences:

  • Identifiers and derived fields are based on the file path are different (for the tests test_unit_import_workflow):

    • Current cwlgen identifier = 1stWorkflow
    • New cwl-utils identifier = file:///path/to/import_workflow.cwl#1stWorkflow
    • This affects identifier derived fields, including: format, source, run.
  • Some method similarities (cwlgen → cwl-utils):

    • get_dict() → save()
    • parse_cwl(cwlfile)load_document(cwlfile)
    • parse_dict → No super clear analogue, but loaded through _RecordLoader(CommandLineTool) || _UnionLoader((CommandLineToolLoader, ...workflow + other loaders)

Additionally, to avoid conflicting with Python keywords we made some specific keyword changes when creating cwlgen, here's how some at least might be mapped back on the initialiser.

  • tool_id | workflow_id | input_id | etcid`
  • StepInput: inputsin_`

Other little differences (more investigation required):


The big difference is that any issues can be solved by regenerating the file based on the schema-salad definition of CWL, so it should always be right. When I get a chance, and once optional init fields are in schema-salad I'd be interested in migrating a real world project to using it.

FYI @mr-c

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions