[ https://issues.apache.org/jira/browse/COMDEV-462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jiajie Zhong updated COMDEV-462: -------------------------------- difficulty-level: Medium > GSoC: Python API CLI enhancement > -------------------------------- > > Key: COMDEV-462 > URL: https://issues.apache.org/jira/browse/COMDEV-462 > Project: Community Development > Issue Type: Task > Components: GSoC/Mentoring ideas > Reporter: Jiajie Zhong > Priority: Major > Labels: DolphinScheduler, full-time, gsoc2022 > > h1. About pydolphinscheduler > *PyDolphinScheduler* is Python API for [Apache > DolphinScheduler|https://dolphinscheduler.apache.org/], which allows you to > define your workflow by Python code, aka workflow-as-codes. You could see > more detail about PyDolphinScheduler in its document[4]. And all the source > code hold as the submodule in DolphinScheduler main codebase[5]. > h1. The goal > Make pydolphinscheduler's CLI more powerful, make it can operate the model of > DolphinScheduler, run pydolphinscheduler's code, visualize its DAG graph in > the terminal. > h1. Detail > Up to now, Apache DolphinScheduler Python API has CLI only with limited > command supported and our community wishes it to become a more powerful tool > and support as much command as possible(unless command has security issue). > It only supports `version` and `config` for now, which you could see more > detail in [1] > Basically, we think the following command is helpful for CLI and you could > add another command if it should be added(but may sure after discussing in > the community): > * `run <DAG name> [--example]`: Run local workflow DAG file or examples > build-in > * `users`: User's operation, CURD > * `projects`: Project's operation, CURD, grant to other users > * `tenants`: Tenant's operation, CURD > * `workflow`: Workflow's operation, CURD, name change, should also change > the local Python file name > * `visualize`: Show task graph in the terminal. > * etc... > Besides the functional addition, we should also consider the output part of > CLI which makes our output more clear and cool. We *may* consider using (we > should also find other interesting packages to do it): > * rich: For highlight, our output, or using some existing rich plugin like > `click-rich` > * tabulate: For the tables visualization in terminal > h1. What Can You Learn > We wish everyone join GSoC could learn some things from the project. When you > finish this project, you could lean: > * How to write production-level Python codes and docs, you could improve > your Python syntax, how to write tests with `pytest` and `tox`, how to write > document with `sphnix` and it related plugin, how to format your Python code > and the linter inside > * Adding knowledge about task scheduling system, what is it and what it > focus, how it could be run > h1. If You Interested in It > If you want to take this ticket, you should > * (Must) Python skill, especially packages click, pytest and etc. > * Have a little knowledge of task scheduling systems. > * (Optional) Basic Java knowledge is better because Apache DolphinScheduler > core is written with Java and you may add some functional code to it. > > [1]: [https://dolphinscheduler.apache.org/python/cli.html] > [2]: [https://github.com/Textualize/rich] > [3]: [https://github.com/astanin/python-tabulate] > [4]: [https://dolphinscheduler.apache.org/python/index.html] > [5]: > [https://github.com/apache/dolphinscheduler/tree/dev/dolphinscheduler-python/pydolphinscheduler] -- This message was sent by Atlassian Jira (v8.20.1#820001) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@community.apache.org For additional commands, e-mail: dev-h...@community.apache.org