This is an automated email from the ASF dual-hosted git repository. dianfu pushed a commit to branch release-2.1 in repository https://gitbox.apache.org/repos/asf/flink.git
commit 8c3e1eb344e5732028f85edebbf4694fa8468ecc Author: Dian Fu <[email protected]> AuthorDate: Mon Feb 9 19:52:13 2026 +0800 [FLINK-39052][python] Remove usage of pkg_resources (#27556) --- flink-python/pyflink/gen_protos.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/flink-python/pyflink/gen_protos.py b/flink-python/pyflink/gen_protos.py index 021023616cd..6bee23ee713 100644 --- a/flink-python/pyflink/gen_protos.py +++ b/flink-python/pyflink/gen_protos.py @@ -30,7 +30,9 @@ import sys import time import warnings -import pkg_resources +from importlib import metadata as importlib_metadata +from importlib import resources as importlib_resources +from packaging.version import parse as parse_version GRPC_TOOLS = 'grpcio-tools>=1.29.0,<=1.71.0' PROTO_PATHS = ['proto'] @@ -87,7 +89,9 @@ def generate_proto_files(force=True, output_dir=DEFAULT_PYTHON_OUTPUT_PATH): else: _check_grpcio_tools_version() logging.info('Regenerating out-of-date Python proto definitions.') - builtin_protos = pkg_resources.resource_filename('grpc_tools', '_proto') + # Get the grpc_tools _proto directory path + grpc_tools_files = importlib_resources.files('grpc_tools') + builtin_protos = str(grpc_tools_files.joinpath('_proto')) args = ( [sys.executable] + # expecting to be called from command line ['--proto_path=%s' % builtin_protos] + @@ -122,8 +126,7 @@ def _install_grpcio_tools_and_generate_proto_files(force, output_dir): start = time.time() # since '--prefix' option is only supported for pip 8.0+, so here we fallback to # use '--install-option' when the pip version is lower than 8.0.0. - pip_version = pkg_resources.get_distribution("pip").version - from pkg_resources import parse_version + pip_version = importlib_metadata.version("pip") if parse_version(pip_version) >= parse_version('8.0.0'): subprocess.check_call( [sys.executable, '-m', 'pip', 'install', @@ -144,10 +147,8 @@ def _install_grpcio_tools_and_generate_proto_files(force, output_dir): sys.stderr.flush() shutil.rmtree(build_path, ignore_errors=True) sys.path.append(install_obj.install_purelib) - pkg_resources.working_set.add_entry(install_obj.install_purelib) if install_obj.install_purelib != install_obj.install_platlib: sys.path.append(install_obj.install_platlib) - pkg_resources.working_set.add_entry(install_obj.install_platlib) try: generate_proto_files(force, output_dir) finally: @@ -185,11 +186,11 @@ def _add_license_header(dir, file_name): def _check_grpcio_tools_version(): - version = pkg_resources.get_distribution("grpcio-tools").parsed_version - from pkg_resources import parse_version + version_str = importlib_metadata.version("grpcio-tools") + version = parse_version(version_str) if version < parse_version('1.29.0') or version > parse_version('1.71.0'): raise RuntimeError( - "Version of grpcio-tools must be between 1.29.0 and 1.71.0, got %s" % version) + "Version of grpcio-tools must be between 1.29.0 and 1.71.0, got %s" % version_str) if __name__ == '__main__':
