{ "info": { "author": "Janneke van der Zwaan", "author_email": "j.vanderzwaan@esciencecenter.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "scriptcwl\n=========\n\n|codacy_grade| |codacy_coverage| |travis| |documentation| |pypi_version| |pypi_supported| |zenodo|\n\nscriptcwl is a Python package for creating workflows in\n`Common Workflow Language (CWL) `_. If you give it a number of CWL\n``CommandLineTools``, you can create a workflow by writing a Python script. This can\nbe done interactively using `Jupyter Notebooks `_. The full\ndocumentation can be found on `Read the Docs `_.\n\n.. image:: docs/images/add-multiply-example-workflow.png\n :alt: add multiply example workflow\n :align: center\n\nGiven CWL ``CommandLineTools`` for ``add`` and ``multiply`` (these are available\nin `scriptcwl `_),\na CWL specification of this workflow can be written as:\n\n.. code-block:: python\n\n from scriptcwl import WorkflowGenerator\n\n with WorkflowGenerator() as wf:\n wf.load(steps_dir='/path_to_scriptcwl/scriptcwl/examples/')\n\n num1 = wf.add_input(num1='int')\n num2 = wf.add_input(num2='int')\n\n answer1 = wf.add(x=num1, y=num2)\n answer2 = wf.multiply(x=answer1, y=num2)\n\n wf.add_outputs(final_answer=answer2)\n\n wf.save('add_multiply_example_workflow.cwl')\n\nThe workflow has two integers as inputs (``num1`` and ``num2``), and first adds\nthese two numbers (``wf.add(x=num1, y=num2)``), and then multiplies the answer\nwith the second input (``num2``). The result of that processing step is the output\nof the workflow. Finally, the workflow is saved to a file. The result looks like:\n\n.. code-block:: sh\n\n #!/usr/bin/env cwl-runner\n cwlVersion: v1.0\n class: Workflow\n inputs:\n num1: int\n num2: int\n outputs:\n final_answer:\n type: int\n outputSource: multiply/answer\n steps:\n add:\n run: add.cwl\n in:\n y: num2\n x: num1\n out:\n - answer\n multiply:\n run: multiply.cwl\n in:\n y: num2\n x: add/answer\n out:\n - answer\n\nThe Python and CWL files used in the example can be found in the `examples folder `_.\n\nInstallation\n############\n\nInstall using pip:\n\n.. code-block:: sh\n\n pip install scriptcwl\n\n\nFor development:\n\n.. code-block:: sh\n\n git clone git@github.com:NLeSC/scriptcwl.git\n cd scriptcwl\n python setup.py develop\n\nRun tests (including coverage) with:\n\n.. code-block:: sh\n\n python setup.py test\n\nUseful tools\n############\n\nTo use scriptcwl for creating CWL workflows, you need CWL ``CommandLineTools``.\nThere are some software packages that help with generating those\nfor existing command line tools written in Python:\n\n* `argparse2tool `_: Generate CWL CommandLineTool wrappers (and/or Galaxy tool descriptions) from Python programs that use argparse. Also supports the `click `_ argument parser.\n* `pypi2cwl `_: Automatically run argparse2cwl on any package in PyPi.\n* `python-cwlgen `_: Generate CommandLineTool and DockerRequirement programmatically\n\nLicense\n#######\n\nCopyright (c) 2016-2018, Netherlands eScience Center, University of Twente\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n.. |codacy_grade| image:: https://api.codacy.com/project/badge/Grade/8f383bca18384d8187c10c27affa9d53\n :target: https://www.codacy.com/app/jvdzwaan/scriptcwl?utm_source=github.com&utm_medium=referral&utm_content=NLeSC/scriptcwl&utm_campaign=Badge_Grade\n\n.. |codacy_coverage| image:: https://api.codacy.com/project/badge/Coverage/8f383bca18384d8187c10c27affa9d53\n :target: https://www.codacy.com/app/jvdzwaan/scriptcwl?utm_source=github.com&utm_medium=referral&utm_content=NLeSC/scriptcwl&utm_campaign=Badge_Coverage\n\n.. |travis| image:: https://travis-ci.org/NLeSC/scriptcwl.svg?branch=master\n :target: https://travis-ci.org/NLeSC/scriptcwl\n\n.. |documentation| image:: https://readthedocs.org/projects/scriptcwl/badge/?version=latest\n :target: http://scriptcwl.readthedocs.io/en/latest/?badge=latest\n\n.. |pypi_version| image:: https://badge.fury.io/py/scriptcwl.svg\n :target: https://badge.fury.io/py/scriptcwl\n\n.. |pypi_supported| image:: https://img.shields.io/pypi/pyversions/scriptcwl.svg\n :target: https://pypi.python.org/pypi/scriptcwl\n\n.. |zenodo| image:: https://zenodo.org/badge/70679474.svg\n :target: https://zenodo.org/badge/latestdoi/70679474\n :alt: DOI", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/NLeSC/scriptcwl/archive/0.8.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nlesc/scriptcwl", "keywords": "cwl,workflow,pipeline,common workflow language", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "scriptcwl", "package_url": "https://pypi.org/project/scriptcwl/", "platform": "", "project_url": "https://pypi.org/project/scriptcwl/", "project_urls": { "Download": "https://github.com/NLeSC/scriptcwl/archive/0.8.0.tar.gz", "Homepage": "https://github.com/nlesc/scriptcwl" }, "release_url": "https://pypi.org/project/scriptcwl/0.8.1/", "requires_dist": null, "requires_python": "", "summary": "Tool to generate CWL workflows", "version": "0.8.1" }, "last_serial": 5662751, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9e9193c5e53a52bdcc88b4fcf3c5e5f3", "sha256": "b8238232e4c7647b65cf1ee599aaf2c8a585b6d6ddd181bed68865bca1f72b4a" }, "downloads": -1, "filename": "scriptcwl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9e9193c5e53a52bdcc88b4fcf3c5e5f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4463, "upload_time": "2016-11-22T09:52:03", "url": "https://files.pythonhosted.org/packages/8c/94/5c62e2e53601da1122e99d49782215adb3ddc094b30ea1577af24610297c/scriptcwl-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "17f058206c29302b9f90ce7f337e8d01", "sha256": "b5b5bdfa5e4b74a2d9dd3e5eb15dc0c9f101f964f753d232b06611ec0847c4e7" }, "downloads": -1, "filename": "scriptcwl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "17f058206c29302b9f90ce7f337e8d01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11876, "upload_time": "2017-02-02T14:29:11", "url": "https://files.pythonhosted.org/packages/b5/85/50e168c246523884d226ecf23dbf7f48fe462fbafdef70aa0e6a70fc7e0d/scriptcwl-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8bfcda3fea779433ce05ac169f4a2d1f", "sha256": "290b42b980f6aa8239fb7fd10576d93987d153be034c849ed553f5fae6cc484f" }, "downloads": -1, "filename": "scriptcwl-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8bfcda3fea779433ce05ac169f4a2d1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11900, "upload_time": "2017-02-14T11:05:13", "url": "https://files.pythonhosted.org/packages/5e/92/c67d06301ff1a29f23037f18d8c593f23385abe55c84d9ac5d4bd1b64baa/scriptcwl-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "faab524b6a5e4b2b2b4bb9eb4d451cc6", "sha256": "497179e98cba14f8bdf168cb1c3be97ffe59bd728beb59ff86a825fc7a26555d" }, "downloads": -1, "filename": "scriptcwl-0.3.1.tar.gz", "has_sig": false, "md5_digest": "faab524b6a5e4b2b2b4bb9eb4d451cc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11934, "upload_time": "2017-02-28T12:25:00", "url": "https://files.pythonhosted.org/packages/ab/45/456f201786e5b4f00a605752bab44fb2b3fc52ced35e69e1cd16f457f742/scriptcwl-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "9ce0c129d311e33a84c44b4f27271357", "sha256": "b6e81c38382e697190a1488309f8642f0f052e22acfcff07f961e8b90224baaa" }, "downloads": -1, "filename": "scriptcwl-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9ce0c129d311e33a84c44b4f27271357", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12169, "upload_time": "2017-05-23T11:37:15", "url": "https://files.pythonhosted.org/packages/53/7a/1f82a63697c5c707ec7b2c7e5ab5d496edd4698c5f307e174e7279693f27/scriptcwl-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "ef78d1713fe2decdf33d446abbc95a02", "sha256": "f702c30239d4aa84aa89ecb3528f2e95dfd864b8493d270a59999b6545fbcd4a" }, "downloads": -1, "filename": "scriptcwl-0.5.0.tar.gz", "has_sig": false, "md5_digest": "ef78d1713fe2decdf33d446abbc95a02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12242, "upload_time": "2017-07-31T07:22:38", "url": "https://files.pythonhosted.org/packages/a1/35/ac0db090767da482d91eb2832d77957c37798908c570022812aa70990af2/scriptcwl-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "fc169d1968afcb6e5cd8f6b1db81ec46", "sha256": "39c4f99e398e7e3ba9cda8baadafaef004d6ed3a0593b2350306192832142e08" }, "downloads": -1, "filename": "scriptcwl-0.5.1.tar.gz", "has_sig": false, "md5_digest": "fc169d1968afcb6e5cd8f6b1db81ec46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14028, "upload_time": "2017-11-09T09:58:58", "url": "https://files.pythonhosted.org/packages/e4/70/c94dde89beb56d24a47c19a42a8c7ce09ed555e58bbd6a461fc467fcfe2f/scriptcwl-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "297596682b852d2799b93028719d312d", "sha256": "3a095ec712baf9c635c946cb97801cdf2302e86165fcfcc6faec45756d7132e6" }, "downloads": -1, "filename": "scriptcwl-0.6.0.tar.gz", "has_sig": false, "md5_digest": "297596682b852d2799b93028719d312d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17006, "upload_time": "2017-11-15T15:43:01", "url": "https://files.pythonhosted.org/packages/85/85/0d01c84cbd235a55a9698f4b1d4ef7236cc9b582c0778337a9ff4875c5c6/scriptcwl-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "bc2d65340c4bd12e2d4d34cfafa60052", "sha256": "7e330b7861a305f7ac476407a5133623300b149d7b929e4e0b75781c50bccb25" }, "downloads": -1, "filename": "scriptcwl-0.7.0.tar.gz", "has_sig": false, "md5_digest": "bc2d65340c4bd12e2d4d34cfafa60052", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18810, "upload_time": "2017-12-14T15:24:20", "url": "https://files.pythonhosted.org/packages/d5/4f/10bb98c98f291a02b7bb0af14b8e145584e923f43b4504e88346fc76c797/scriptcwl-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "71c4b4d7466f77a2b9844e31f77524f6", "sha256": "541a2405f436139254c2f042c3c590a58dcd1a359d7b878744c3fc4f0a303456" }, "downloads": -1, "filename": "scriptcwl-0.7.1.tar.gz", "has_sig": false, "md5_digest": "71c4b4d7466f77a2b9844e31f77524f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19251, "upload_time": "2018-01-26T07:38:09", "url": "https://files.pythonhosted.org/packages/88/db/99d90ba740451f2907e333e435d3118b5fc3ae85a4132216ca7696012cfa/scriptcwl-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "0455e403b14db3ff5c135ca0c42003fe", "sha256": "7a083e5c8b8814d317707d3a4229755c4c9b8d0bfc76df6700a5fdc3e3b149ea" }, "downloads": -1, "filename": "scriptcwl-0.7.2.tar.gz", "has_sig": false, "md5_digest": "0455e403b14db3ff5c135ca0c42003fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19887, "upload_time": "2018-07-19T08:23:34", "url": "https://files.pythonhosted.org/packages/a9/25/73e331cd9257be858882bedf4ba476f0212b3ee4321f0ce9e794ed7879ce/scriptcwl-0.7.2.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "f6c13d475971b9faecca28f1da0bb52b", "sha256": "84eeaec898cb3947274dfabfc80d78a0144abe49654435bebf68f63654c3eb40" }, "downloads": -1, "filename": "scriptcwl-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f6c13d475971b9faecca28f1da0bb52b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23940, "upload_time": "2018-11-28T09:07:31", "url": "https://files.pythonhosted.org/packages/16/f3/d2749e50f52bb26f621146369a1b0a32628ff03322e726cbe76d98328ae1/scriptcwl-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10a06f42230523046421f50c1b24c86c", "sha256": "6da133f534bd797a44fca2c198cfbbf016efa95670cdc93927cca3670ab56bae" }, "downloads": -1, "filename": "scriptcwl-0.8.0.tar.gz", "has_sig": false, "md5_digest": "10a06f42230523046421f50c1b24c86c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22892, "upload_time": "2018-11-28T09:07:33", "url": "https://files.pythonhosted.org/packages/78/84/b3b88d993b5f5839e6430a797c732d31195a9c52448f89d8a0cc5ba92748/scriptcwl-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "b2b493465d1fcedf9d0a7dc788f542a9", "sha256": "f4ecb2e3120e7be359eebb1a96f1ec16157ac5b20741cc70e8fa385e9bd7774f" }, "downloads": -1, "filename": "scriptcwl-0.8.1.tar.gz", "has_sig": false, "md5_digest": "b2b493465d1fcedf9d0a7dc788f542a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23069, "upload_time": "2019-08-11T17:08:22", "url": "https://files.pythonhosted.org/packages/b1/85/d186a7ffaedda6422c3a5d930c95be2ee2584811b6d70ba00d1aa8750001/scriptcwl-0.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2b493465d1fcedf9d0a7dc788f542a9", "sha256": "f4ecb2e3120e7be359eebb1a96f1ec16157ac5b20741cc70e8fa385e9bd7774f" }, "downloads": -1, "filename": "scriptcwl-0.8.1.tar.gz", "has_sig": false, "md5_digest": "b2b493465d1fcedf9d0a7dc788f542a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23069, "upload_time": "2019-08-11T17:08:22", "url": "https://files.pythonhosted.org/packages/b1/85/d186a7ffaedda6422c3a5d930c95be2ee2584811b6d70ba00d1aa8750001/scriptcwl-0.8.1.tar.gz" } ] }