# airtolphin
[![PyPi Version](https://img.shields.io/pypi/v/airtolphin.svg?style=flat-square&logo=PyPi)](https://pypi.org/project/airtolphin/)
[![PyPi Python Versions](https://img.shields.io/pypi/pyversions/airtolphin.svg?style=flat-square&logo=python)](https://pypi.org/project/airtolphin/)
[![PyPi License](https://img.shields.io/:license-Apache%202-blue.svg?style=flat-square)](https://raw.githubusercontent.com/WhaleOps/airtolphin/main/LICENSE)
[![PyPi Status](https://img.shields.io/pypi/status/airtolphin.svg?style=flat-square)](https://pypi.org/project/airtolphin/)
[![Downloads](https://pepy.tech/badge/airtolphin/month)](https://pepy.tech/project/airtolphin)
[![Coverage Status](https://img.shields.io/codecov/c/github/WhaleOps/airtolphin/main.svg?style=flat-square)](https://codecov.io/github/WhaleOps/airtolphin?branch=main)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat-square&labelColor=ef8336)](https://pycqa.github.io/isort)
[![CI](https://github.com/WhaleOps/airtolphin/actions/workflows/ci.yaml/badge.svg)](https://github.com/WhaleOps/airtolphin/actions/workflows/ci.yaml)
Airflow to DolphinScheduler migration tool.
## Installation
For now, it just for test and without publish to pypi but will be adding in the future.
You could still install locally by yourself.
```shell
python pip install --upgrade airtolphin
```
## Quick Start
We have an example told you how it works in `./examples/transfer_tutorial.py`, it migrates
Airflow's tutorial in path `./examples/airflow/tutorial.py` to DolphinScheduler's Python
API. You could run it by
```shell
python ./examples/transfer_tutorial.py
```
## Support Statement
For now, we support following conversion from Airflow's DAG files
### DAG
| Before Conversion | After Conversion |
| ----- | ----- |
| `from airflow import DAG` | `from pydolphinscheduler.core.process_definition import ProcessDefinition` |
| `with DAG(...) as dag: pass` | `with ProcessDefinition(...) as dag: pass` |
### Operators
#### Dummy Operator
| Before Conversion | After Conversion |
| ----- | ----- |
| `from airflow.operators.dummy_operator import DummyOperator` | `from pydolphinscheduler.tasks.shell import Shell` |
| `from airflow.operators.dummy import DummyOperator` | `from pydolphinscheduler.tasks.shell import Shell` |
| `dummy = DummyOperator(...)` | `dummy = Shell(..., command="echo 'airflow dummy operator'")` |
#### Shell Operator
| Before Conversion | After Conversion |
| ----- | ----- |
| `from airflow.operators.bash import BashOperator` | `from pydolphinscheduler.tasks.shell import Shell` |
| `bash = BashOperator(...)` | `bash = Shell(...)` |
#### Spark Sql Operator
| Before Conversion | After Conversion |
| ----- | ----- |
| `from airflow.operators.spark_sql_operator import SparkSqlOperator` | `from pydolphinscheduler.tasks.sql import Sql` |
| `spark = SparkSqlOperator(...)` | `spark = Sql(...)` |
#### Python Operator
| Before Conversion | After Conversion |
|----------------------------------------------------------------|------------------------------------------------------|
| `from airflow.operators.python_operator import PythonOperator` | `from pydolphinscheduler.tasks.python import Python` |
| `python = PythonOperator(...)` | `python = Python(...)` |
Raw data
{
"_id": null,
"home_page": "https://github.com/WhaleOps/airtolphin",
"name": "airtolphin",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "transfer,tool,parser,airflow,dolphinscheduler",
"author": "Jay Chung",
"author_email": "zhongjiajie955@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/5d/b5/268d29e50441d72eb3b831acaa55e852b795dced9de298122939e6388fd2/airtolphin-0.0.1.tar.gz",
"platform": "any",
"description": "# airtolphin\n\n[![PyPi Version](https://img.shields.io/pypi/v/airtolphin.svg?style=flat-square&logo=PyPi)](https://pypi.org/project/airtolphin/)\n[![PyPi Python Versions](https://img.shields.io/pypi/pyversions/airtolphin.svg?style=flat-square&logo=python)](https://pypi.org/project/airtolphin/)\n[![PyPi License](https://img.shields.io/:license-Apache%202-blue.svg?style=flat-square)](https://raw.githubusercontent.com/WhaleOps/airtolphin/main/LICENSE)\n[![PyPi Status](https://img.shields.io/pypi/status/airtolphin.svg?style=flat-square)](https://pypi.org/project/airtolphin/)\n[![Downloads](https://pepy.tech/badge/airtolphin/month)](https://pepy.tech/project/airtolphin)\n[![Coverage Status](https://img.shields.io/codecov/c/github/WhaleOps/airtolphin/main.svg?style=flat-square)](https://codecov.io/github/WhaleOps/airtolphin?branch=main)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat-square&labelColor=ef8336)](https://pycqa.github.io/isort)\n[![CI](https://github.com/WhaleOps/airtolphin/actions/workflows/ci.yaml/badge.svg)](https://github.com/WhaleOps/airtolphin/actions/workflows/ci.yaml)\n\nAirflow to DolphinScheduler migration tool.\n\n## Installation\n\nFor now, it just for test and without publish to pypi but will be adding in the future.\nYou could still install locally by yourself.\n\n```shell\npython pip install --upgrade airtolphin\n```\n\n## Quick Start\n\nWe have an example told you how it works in `./examples/transfer_tutorial.py`, it migrates\nAirflow's tutorial in path `./examples/airflow/tutorial.py` to DolphinScheduler's Python\nAPI. You could run it by\n\n```shell\npython ./examples/transfer_tutorial.py\n```\n\n## Support Statement\n\nFor now, we support following conversion from Airflow's DAG files\n\n### DAG\n\n| Before Conversion | After Conversion |\n| ----- | ----- |\n| `from airflow import DAG` | `from pydolphinscheduler.core.process_definition import ProcessDefinition` |\n| `with DAG(...) as dag: pass` | `with ProcessDefinition(...) as dag: pass` |\n\n### Operators\n\n#### Dummy Operator\n\n| Before Conversion | After Conversion |\n| ----- | ----- |\n| `from airflow.operators.dummy_operator import DummyOperator` | `from pydolphinscheduler.tasks.shell import Shell` |\n| `from airflow.operators.dummy import DummyOperator` | `from pydolphinscheduler.tasks.shell import Shell` |\n| `dummy = DummyOperator(...)` | `dummy = Shell(..., command=\"echo 'airflow dummy operator'\")` |\n\n#### Shell Operator\n\n| Before Conversion | After Conversion |\n| ----- | ----- |\n| `from airflow.operators.bash import BashOperator` | `from pydolphinscheduler.tasks.shell import Shell` |\n| `bash = BashOperator(...)` | `bash = Shell(...)` |\n\n#### Spark Sql Operator\n\n| Before Conversion | After Conversion |\n| ----- | ----- |\n| `from airflow.operators.spark_sql_operator import SparkSqlOperator` | `from pydolphinscheduler.tasks.sql import Sql` |\n| `spark = SparkSqlOperator(...)` | `spark = Sql(...)` |\n\n#### Python Operator\n\n| Before Conversion | After Conversion |\n|----------------------------------------------------------------|------------------------------------------------------|\n| `from airflow.operators.python_operator import PythonOperator` | `from pydolphinscheduler.tasks.python import Python` |\n| `python = PythonOperator(...)` | `python = Python(...)` |\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Airflow to DolphinScheduler migration tool",
"version": "0.0.1",
"split_keywords": [
"transfer",
"tool",
"parser",
"airflow",
"dolphinscheduler"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "59a6ce1cc85ee5a1bf867481236244fb",
"sha256": "a1f388dc280d74bfb45b333f783211c906893aa497612ce7d0f552cd061dfaad"
},
"downloads": -1,
"filename": "airtolphin-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "59a6ce1cc85ee5a1bf867481236244fb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 13434,
"upload_time": "2022-11-30T06:25:36",
"upload_time_iso_8601": "2022-11-30T06:25:36.386569Z",
"url": "https://files.pythonhosted.org/packages/96/a8/580f86ba648d8a155e3cfe25bbe275b65ccad7c01308edb31925b87130e1/airtolphin-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "1597d7fbd2b4db309e83eae8f568cbfc",
"sha256": "e8e1dc970706d2efbcd9639a4778fe6a5382c795ea6f508c29e356d5b737d8cf"
},
"downloads": -1,
"filename": "airtolphin-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "1597d7fbd2b4db309e83eae8f568cbfc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 10944,
"upload_time": "2022-11-30T06:25:38",
"upload_time_iso_8601": "2022-11-30T06:25:38.342461Z",
"url": "https://files.pythonhosted.org/packages/5d/b5/268d29e50441d72eb3b831acaa55e852b795dced9de298122939e6388fd2/airtolphin-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-11-30 06:25:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "WhaleOps",
"github_project": "airtolphin",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "airtolphin"
}