This is an automated email from the ASF dual-hosted git repository. mck pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-ccm.git
commit 0b19c8eef37db2e11ecf5b27c42c883be88830ce Author: Dmitry Kropachev <[email protected]> AuthorDate: Sun Dec 7 03:43:41 2025 -0400 Drop pkg_resources dependency pkg_resources is going to be removed from setuptools in 81 version. patch by Dmitry Kropachev; reviewed by Mick Semb Wever for CASSANDRA-18321 --- ccm | 27 +++++++++++++++++++++++++-- requirements.txt | 1 + 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/ccm b/ccm index 8b191cb..690a992 100755 --- a/ccm +++ b/ccm @@ -20,7 +20,6 @@ import os import sys import warnings -import pkg_resources from six import print_ from ccmlib import common @@ -29,6 +28,14 @@ from ccmlib.cmds.common import get_command from ccmlib.remote import (PARAMIKO_IS_AVAILABLE, execute_ccm_remotely, get_remote_options, get_remote_usage) +try: # Python 3.8+ + from importlib.metadata import entry_points +except ImportError: # pragma: no cover - fallback for older Pythons + try: + from importlib_metadata import entry_points # type: ignore + except ImportError: + entry_points = None + def print_subcommand_usage(kind): for cmd_name in (cluster_cmds if kind.lower() == 'cluster' else node_cmds).commands(): @@ -58,7 +65,23 @@ def print_global_usage(): exit(1) -for entry_point in pkg_resources.iter_entry_points(group='ccm_extension'): +def _iter_ccm_extension_entry_points(): + if entry_points is None: + warnings.warn("importlib.metadata not available; skipping ccm_extension entry points") + return [] + + eps = entry_points() + + if hasattr(eps, 'select'): # modern importlib.metadata + return eps.select(group='ccm_extension') + + if isinstance(eps, dict): # older importlib_metadata returns dict + return eps.get('ccm_extension', []) + + return [ep for ep in eps if getattr(ep, 'group', None) == 'ccm_extension'] + + +for entry_point in _iter_ccm_extension_entry_points(): entry_point.load()() common.check_win_requirements() diff --git a/requirements.txt b/requirements.txt index 45e818b..41d9472 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,3 +19,4 @@ pyYaml; python_version >= '3' six >=1.4.1 psutil packaging<21 +importlib_metadata>=0.23; python_version < '3.8' --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
