{"id":28712421,"url":"https://github.com/polusai/tools","last_synced_at":"2025-06-14T23:05:49.379Z","repository":{"id":256804021,"uuid":"761286316","full_name":"PolusAI/tools","owner":"PolusAI","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-28T14:04:01.000Z","size":201,"stargazers_count":0,"open_issues_count":2,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-28T19:56:02.509Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PolusAI.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-21T15:32:25.000Z","updated_at":"2025-02-28T14:04:06.000Z","dependencies_parsed_at":"2024-09-13T05:45:24.289Z","dependency_job_id":"23d2628f-879b-4e12-9d9c-53aa4db5c25b","html_url":"https://github.com/PolusAI/tools","commit_stats":null,"previous_names":["polusai/tools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PolusAI/tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolusAI%2Ftools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolusAI%2Ftools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolusAI%2Ftools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolusAI%2Ftools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PolusAI","download_url":"https://codeload.github.com/PolusAI/tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolusAI%2Ftools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259896237,"owners_count":22928331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-14T23:05:48.725Z","updated_at":"2025-06-14T23:05:49.363Z","avatar_url":"https://github.com/PolusAI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Polus Tools\n\n## polus.tool.workflows\n\nThis package provides model that represents CWL workflows and command line\ntools following the latest [cwl spec](https://www.commonwl.org/v1.2/).\nIt also provides tools to load, save, build and execute cwl tools and workflows.\nIt requires no configuration and focus on ease of use and modularity.\n\n### How to install\n\nthe workflow builder is written and tested for Python 3.x {x = 9, 10, 11}.\n\nUse you prefered method to create a new environment then :\n\nwith pip: `pip install .`\nor with poetry:  `poetry install`\n\n### How to use\n\n`python examples/workflows/demo_image_processing.py` for a basic example of use.\n\nThis tool allows people to load clts and workflows from a path or a URI.\nThe `CommandLineTool` and `Workflow` models are found in `polus.tools.workflow.model`.\nThen workflows can be build thanks to two builder classes : `StepBuilder` and `WorkflowBuilder`.\nThose builders are configurable to further customize how they operate.\n\nThe tool provide an easy way to configure a workflow through regular python assignments.\nEx:\nassigning a value to a step input :  `step1.inputA = \"input_message\"`\nlinking an step output to another step input : `step2.inputA = step1.outputA`\n\nOnce configured and build, a `workflow` object can be persisted with `workflow.save()`\nand its configuration with `workflow.save_config()`\n\nLastly we provide a convenience method to run workflows locally with `cwltool`\nby calling `polus.tools.workflows.backends.run_cwl()`.\n\n### Structure\n\n`src/polus/tools/workflows` contains the source code.\n`tests/workflows` contains the test suite.\n`tests/worklflows/test_data` contains a variety of cwl processes definitions.\n`examples` contains our examples.\n\nOther data directories:\n`cwl` contains cwl definitions of processes we use as building blocks.\n`cwl_generated` contains cwl definitions of processes generated by the tool.\n`tmp` will be created on the first run and will contains examples outputs.\n\n\n### Current Workflow features\n\nThis tool supports creating workflows containing:\n- subworkflows\n- conditional clauses\n- scattered inputs\n- multiple inputs\n\n\n### Developers\n\nSome hooks should run on commits. Please run `pre-commit install` to set up the hooks\nbefore contributing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolusai%2Ftools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolusai%2Ftools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolusai%2Ftools/lists"}