[FLINK-37775][python] Manage python development/test dependencies in pyproject.yaml #26642
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What is the purpose of the change
Currently, development and testing dependencies for pyflink are scattered in a couple of locations. The dev dependencies are in
dev/dev-requirements.txt
, and the testing dependencies are scattered around thedev/lint-python.sh
script. PEP 735 introduced support for dependency groups in pyproject.toml which, unlike[optional-dependencies]
which are included in the distribution of the package, dependency groups are useful for defining named groups of dependencies for internal project use. Currently the latest versions of pip, uv, etc support this withpip install --group <group-name>
.This PR moves these dependencies into
pyproject.toml
and updates the docs, scripts, tests etc to use them.Note: I'm unsure if moving the dev dependencies into here is the right thing to do, since people are still very used to
pip install -r requirements.txt
. I'd be open to keeping them in the requirements.txt file - but I do think keeping the testing dependencies inpyproject.toml
instead of hardcoded in thelint-python.sh
script is nicer.Brief change log
pyproject.toml
.Verifying this change
This change is already covered by existing tests, such as the PyFlink integration and e2e tests.
Does this pull request potentially affect one of the following parts:
@Public(Evolving)
: (no)Documentation