Git Product home page Git Product logo

cwl2argparse's Introduction

Common Workflow Language

Main website: https://www.commonwl.org

GitHub repository for www.commonwl.org: https://www.github.com/common-workflow-language/cwl-website

CWL v1.0.x: https://github.com/common-workflow-language/common-workflow-language (this repository)

CWL v1.1.x: https://github.com/common-workflow-language/cwl-v1.1/

CWL v1.2.x: https://github.com/common-workflow-language/cwl-v1.2/

Support Gitter GitHub stars

[Video] Common Workflow Language explained in 64 seconds The Common Workflow Language (CWL) is a specification for describing analysis workflows and tools in a way that makes them portable and scalable across a
variety of software and hardware environments, from workstations to cluster, cloud, and high performance computing (HPC) environments. CWL is designed to meet the needs of data-intensive science, such as Bioinformatics, Medical Imaging, Astronomy, Physics, and Chemistry.

Open Stand badge CWL is developed by a multi-vendor working group consisting of organizations and individuals aiming to enable scientists to share data analysis workflows. The CWL project is maintained on Github and we follow the Open-Stand.org principles for collaborative open standards development. Legally, CWL is a member project of Software Freedom Conservancy and is formally managed by the elected CWL leadership team, however every-day project decisions are made by the CWL community which is open for participation by anyone.

CWL builds on technologies such as JSON-LD for data modeling and Docker for portable runtime environments.

User Guide

The CWL user guide provides a gentle introduction to learning how to write CWL command line tool and workflow descriptions.

CWLの日本語での解説ドキュメント is a 15 minute introduction to the CWL project in Japanese.

CWL Recommended Practices

CWLの日本語での解説ドキュメント is a 15 minute introduction to the CWL project in Japanese.

A series of video lessons about CWL is available in Russian as part of the Управление вычислениями(Computation Management) free online course.

Citation

To reference the CWL project in a scholary work, please use the following citation:

Michael R. Crusoe, Sanne Abeln, Alexandru Iosup, Peter Amstutz, John Chilton, Nebojša Tijanić, Hervé Ménager, Stian Soiland-Reyes, Bogdan Gavrilović, Carole Goble, and The CWL Community. (2022): Methods Included: Standardizing Computational Reuse and Portability with the Common Workflow Language. Commun. ACM 65, 6 (June 2022), 54–63. https://doi.org/10.1145/3486897

To cite version 1.0 of the CWL standards specifically, please use the following citation inclusive of the DOI.

Peter Amstutz, Michael R. Crusoe, Nebojša Tijanić (editors), Brad Chapman, John Chilton, Michael Heuer, Andrey Kartashov, Dan Leehr, Hervé Ménager, Maya Nedeljkovich, Matt Scales, Stian Soiland-Reyes, Luka Stojanovic (2016): Common Workflow Language, v1.0. Specification, Common Workflow Language working group. https://w3id.org/cwl/v1.0/ doi:10.6084/m9.figshare.3115156.v2

A collection of existing references to CWL can be found at https://zotero.org/groups/cwl

Code of Conduct

The CWL Project is dedicated to providing a harassment-free experience for everyone, regardless of gender, gender identity and expression, sexual orientation, disability, physical appearance, body size, age, race, or religion. We do not tolerate harassment of participants in any form. This code of conduct applies to all CWL Project spaces, including the Google Group, the Gitter chat room, the Google Hangouts chats, both online and off. Anyone who violates this code of conduct may be sanctioned or expelled from these spaces at the discretion of the leadership team.

For more details, see our Code of Conduct.

For the following content:

  • Support, Community and Contributing
  • CWL Implementations
  • Repositories of CWL Tools and Workflows
  • Software for working with CWL
    • Editors and viewers
    • Utilities
    • Converters and code generators
    • Code libraries
  • Projects the CWL community is participating in
  • Participating Organizations
  • Individual Contributors
  • CWL Advisors
  • CWL Leadership team

Please see https://www.commonwl.org

cwl2argparse's People

Contributors

dependabot-preview[bot] avatar katrinleinweber avatar mr-c avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cwl2argparse's Issues

Optional Parameters Unsupported

The CWL spec allows to define optional parameters by simply adding a ? to a type. For example see inp.cwl from the User Guide. cwl2argparse fails with error message KeyError: 'File?' in this case.

support v1.0 stdout type

http://www.commonwl.org/v1.0/CommandLineTool.html#stdout

(env) michael@dan:~/cwl-upgrader$ cwl2argparse cwlupgrader/main.cwl 
Traceback (most recent call last):
  File "/home/michael/cwl-upgrader/env/bin/cwl2argparse", line 9, in <module>
    load_entry_point('cwl2argparse==0.1.3', 'console_scripts', 'cwl2argparse')()
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/main.py", line 25, in main
    cwl2argparse(f, dest, args.prefix)
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/cwl_argparse_translation.py", line 127, in cwl2argparse
    args.append(Argument(arg))
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/cwl_argparse_translation.py", line 23, in __init__
    self.type = Argument._get_type(arg)
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/cwl_argparse_translation.py", line 77, in _get_type
    arg_type = CWL_TO_PY_TYPES[arg.get_type()]
KeyError: 'stdout'

ImportError: No module named cwl_argparse_translation

(env) michael@dan:~/cwl-upgrader$ pip install cwl2argparse
Collecting cwl2argparse
  Downloading cwl2argparse-0.1.3-py2.py3-none-any.whl
Collecting jinja2 (from cwl2argparse)
  Using cached Jinja2-2.8-py2.py3-none-any.whl
Collecting MarkupSafe (from jinja2->cwl2argparse)
Installing collected packages: MarkupSafe, jinja2, cwl2argparse
Successfully installed MarkupSafe-0.23 cwl2argparse-0.1.3 jinja2-2.8
(env) michael@dan:~/cwl-upgrader$ cwl2argparse cwlupgrader/main.cwl 
Traceback (most recent call last):
  File "/home/michael/cwl-upgrader/env/bin/cwl2argparse", line 7, in <module>
    from cwl2argparse.main import main
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/main.py", line 6, in <module>
    from cwl2argparse.cwl_argparse_translation import cwl2argparse
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/cwl2argparse.py", line 6, in <module>
    import yaml
ImportError: No module named yaml
(env) michael@dan:~/cwl-upgrader$ pip install pyyaml
Collecting pyyaml
Installing collected packages: pyyaml
Successfully installed pyyaml-3.11
(env) michael@dan:~/cwl-upgrader$ cwl2argparse cwlupgrader/main.cwl 
Traceback (most recent call last):
  File "/home/michael/cwl-upgrader/env/bin/cwl2argparse", line 7, in <module>
    from cwl2argparse.main import main
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/main.py", line 6, in <module>
    from cwl2argparse.cwl_argparse_translation import cwl2argparse
ImportError: No module named cwl_argparse_translation

KeyError: 'baseCommand'

Fail nicer in case of user error? This was my fault as my basecommand had the wrong case.

(env) michael@dan:~/cwl-upgrader$ cwl2argparse cwlupgrader/main.cwl 
Traceback (most recent call last):
  File "/home/michael/cwl-upgrader/env/bin/cwl2argparse", line 9, in <module>
    load_entry_point('cwl2argparse==0.1.3', 'console_scripts', 'cwl2argparse')()
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/main.py", line 25, in main
    cwl2argparse(f, dest, args.prefix)
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/cwl_argparse_translation.py", line 119, in cwl2argparse
    tool = Tool(file)
  File "/home/michael/cwl-upgrader/env/local/lib/python2.7/site-packages/cwl2argparse/cwl_classes.py", line 72, in __init__
    self.basecommand = tool['baseCommand']
KeyError: 'baseCommand'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.