Metadata-Version: 2.4
Name: python-to-yaml-dag-converter-mwaa-serverless
Version: 0.1.2
Summary: CLI tool that converts Python airflow Dags to YAML Dags for use with dagfactory
Project-URL: Source, https://github.com/awslabs/python-to-yaml-dag-converter-mwaa-serverless
Project-URL: Repository, https://github.com/awslabs/python-to-yaml-dag-converter-mwaa-serverless.git
Project-URL: Issues, https://github.com/awslabs/python-to-yaml-dag-converter-mwaa-serverless/issues
Project-URL: Changelog, https://github.com/awslabs/python-to-yaml-dag-converter-mwaa-serverless/blob/main/CHANGELOG.md
Project-URL: Documentation, https://github.com/awslabs/python-to-yaml-dag-converter-mwaa-serverless/blob/main/README.md
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: Apache Airflow
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: apache-airflow-providers-amazon==9.10.0
Requires-Dist: apache-airflow-providers-cncf-kubernetes==10.6.1
Requires-Dist: apache-airflow==3.0.6
Requires-Dist: boto3>=1.37.3
Requires-Dist: cadwyn==5.6.1
Requires-Dist: dag-factory==1.0.0
Requires-Dist: fastapi[standard]==0.121.2
Requires-Dist: rich<15.0.0,>=13.7.1
Description-Content-Type: text/markdown

## Python to Yaml Dag Converter for MWAA Serverless

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

Python to Yaml Dag Converter for MWAA Serverless is a command-line tool for converting [Apache Airflow®](https://airflow.apache.org) Dags written in Python to [dag-factory](https://github.com/astronomer/dag-factory) compatible Dags written in YAML.

## Prerequisites

- Python 3.11+

## Benefits
- Onboard existing Python Dags to declarative YAML
- Ensures compatibility with DagFactory 1.0
- Convert Python Dags to MWAA Serverless compatible YAML
- Upload converted YAML to S3

## ⚡ Quick Start

### **Step 1**: Install
```
pip install python-to-yaml-dag-converter-mwaa-serverless
```

### **Step 2**: Use
```
dag-converter convert <python-dag-file>
```
Call with the `--help` flag for more options

### **Step 3**: Review
Review the converted Dags in the `output_yaml` folder in the current directory

## Options
* `--help` Show help message and exit
* `--output`: PATH Path to output converted YAML Dag(s) to [default: output_yaml]
* `--bucket`: TEXT S3 bucket to upload converted Dags to. Uses local AWS credentials
* `--validate/--no-validate`: Validate the output YAML using DagFactory
* `--debug/--no-debug` Enable logging DagBag objects to .initial_task_attributes before and after conversion

## Limitations
* Only AWS operators and AWS provider packages are supported
* Behavior that is not supported in `dag-factory` will not be converted
* Dynamic task mapping conversion is not supported

## Examples
* See supported [examples](https://github.com/awslabs/python-to-yaml-dag-converter-mwaa-serverless/blob/main/dev/integ_test/python_test_folder/supported)
* Try one out
```
dag-converter convert airflow_s3.py
```

## Contributing and Bug Reporting

See [CONTRIBUTING](CONTRIBUTING.md#contributing-guidelines) for more information.

## Security

See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.

## License

This project is licensed under the Apache-2.0 License.
