Metadata-Version: 2.5
Name: eoap_cwlwrap
Version: 0.32.0
Summary: Add stage-in/stage-out steps to EOAP CWL Workflows
Project-URL: Homepage, https://github.com/EOEPCA/eoap-cwlwrap
Project-URL: Documentation, https://EOEPCA.github.io/eoap-cwlwrap/
Project-URL: Repository, https://github.com/EOEPCA/eoap-cwlwrap
Project-URL: Issues, https://github.com/EOEPCA/eoap-cwlwrap/issues
Project-URL: Changelog, https://github.com/EOEPCA/eoap-cwlwrap/blob/main/CHANGELOG.md
Author-email: Terradue srl <info@terradue.com>, Fabrice Brito <fabrice.brito@terradue.com>, Simone Tripodi <simone.tripodi@terradue.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: commonwl,cwl,transpiler-mate
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
Requires-Dist: loguru==0.7.3
Requires-Dist: transpiler-mate-api>=1.0.0
Provides-Extra: test
Requires-Dist: click<9,>=8.4.2; extra == 'test'
Requires-Dist: pytest-cov<8,>=6.2; extra == 'test'
Requires-Dist: pytest<10,>=8.4; extra == 'test'
Description-Content-Type: text/markdown

# EOAP CWL Wrap

[![PyPI - Version](https://img.shields.io/pypi/v/eoap-cwlwrap.svg)](https://pypi.org/project/eoap-cwlwrap)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/eoap-cwlwrap.svg)](https://pypi.org/project/eoap-cwlwrap)
[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/EOEPCA/eoap-cwlwrap/package.yaml?branch=develop&event=push&label=build&logo=githubactions)](https://github.com/EOEPCA/eoap-cwlwrap/actions/workflows/package.yaml?query=branch%3Adevelop)
[![Code coverage](https://img.shields.io/codecov/c/github/EOEPCA/eoap-cwlwrap/develop?logo=codecov)](https://app.codecov.io/gh/EOEPCA/eoap-cwlwrap/tree/develop)

`eoap-cwlwrap` is a Transpiler Mate plugin that composes a CWL `Workflow` from a series of `Workflow`/`CommandLineTool` steps, defined according to [Application package patterns based on data stage-in and stage-out behaviors commonly used in EO workflows](https://eoap.github.io/application-package-patterns), and **packs** it into a single self-contained CWL document.

> [!WARNING]
> Since version **0.32.0**, EOAP CWL Wrap is a **Transpiler Mate plugin**.
> Install `transpiler-mate-runtime` alongside `eoap-cwlwrap` and run
> `transpiler-mate cwlwrap SOURCE [OPTIONS]`. Replace the old `--workflow` option
> with the positional source. See the [CLI reference](docs/reference/cli.md)
> for migration details.

It ensures:
- **Type-safe chaining** of step outputs to the next step's inputs.
- **Reusable, modular design** by keeping each step in its own file.
- **Packed output** ready for execution or distribution.

## Contribute

Submit a [Github issue](https://github.com/EOEPCA/eoap-cwlwrap/issues) if you have comments or suggestions.

### Local quality checks

Install [Hatch](https://hatch.pypa.io/) and [Taskfiles](https://taskfile.dev/docs/guide) then install the Git hook:

```console
task quality:pre-commit:install
```

Every commit runs Ruff (including the configured McCabe complexity limit),
Ruff formatting, strict mypy checks, and the pytest suite.
Run the complete hook explicitly with:

```console
task quality:pre-commit:run
```

## Documentation

See the documentation at https://eoepca.github.io/eoap-cwlwrap/

## License

[![Apache License, Version 2.0](https://img.shields.io/badge/license-Apache%20License%202.0-blue)](https://www.apache.org/licenses/LICENSE-2.0)
