DanielLeens opened a new pull request, #11337: URL: https://github.com/apache/seatunnel/pull/11337
### Purpose of this pull request This pull request adds a new `PythonSource` connector that lets SeaTunnel launch a user-provided Python script as a bounded source. The Phase 1 MVP focuses on a simple and explicit contract: - SeaTunnel starts one Python process via `ProcessBuilder` - SeaTunnel writes `python.script.config` as JSON to the first stdin line - The Python script prints one record per stdout line - SeaTunnel parses stdout lines with `file_format_type = text` and `field_delimiter` It also wires the new connector into plugin registration, distribution packaging, and EN/ZH connector docs. Resolves #10182 ### Does this PR introduce _any_ user-facing change? Yes. Users can now configure a new `PythonSource` source connector and implement custom batch data extraction logic in Python scripts without writing a Java connector first. ### How was this patch tested? Module-scoped verification completed: 1. `./mvnw -pl seatunnel-connectors-v2/connector-python test -DskipITs -DskipUTs=false` 2. `./mvnw -pl seatunnel-connectors-v2/connector-python package -DskipTests` Real runtime verification included in tests: - The connector tests launch a real Python subprocess (`python3` or `python`) - Verify stdin JSON config handoff to the script - Verify stdout text rows are parsed into `SeaTunnelRow` by schema order - Verify non-zero Python exits fail the reader with recent stderr context Not fully revalidated in this round: - Full reactor build with `-am` was attempted locally, but the current `upstream/dev` baseline failed earlier in `seatunnel-config-shade` with unrelated `com.typesafe.config` compilation errors before reaching this connector’s full-chain packaging path - `seatunnel-engine-ui` was not built, because this change does not touch UI code and does not depend on UI artifacts ### Check list * [ ] If any new Jar binary package adding in your PR, please add License Notice according [New License Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/contribution/new-license.md) * [x] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs * [x] If you are contributing the connector code, please check that the following files are updated: 1. Update [plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties) and add new connector information in it 2. Update the pom file of [seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml) 3. Add ci label in [label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml) 4. Add e2e testcase in [seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/) 5. Update connector [plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config) * [ ] Update the [`release-note`](https://github.com/apache/seatunnel/blob/dev/release-note.md). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
