From 27ead7d38a5f6ee1e83928224e130013c149f060 Mon Sep 17 00:00:00 2001 From: Miro <200482516+Mirochill@users.noreply.github.com> Date: Fri, 22 May 2026 23:50:59 +0200 Subject: [PATCH] Remove pkg_resources from client version lookup --- pynats/client.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/pynats/client.py b/pynats/client.py index 812d40b..4526050 100644 --- a/pynats/client.py +++ b/pynats/client.py @@ -7,8 +7,6 @@ from typing import BinaryIO, Callable, Dict, Match, Optional, Pattern, Tuple, Union from urllib.parse import urlparse -import pkg_resources - from pynats.exceptions import ( NATSInvalidResponse, NATSInvalidSchemeError, @@ -21,6 +19,9 @@ __all__ = ("NATSSubscription", "NATSMessage", "NATSClient") +DISTRIBUTION_NAME = "nats-python" +DEFAULT_CLIENT_VERSION = "0.9.0-alpha.0" + INFO_OP = b"INFO" CONNECT_OP = b"CONNECT" @@ -57,6 +58,21 @@ INBOX_PREFIX = bytearray(b"_INBOX.") +def _get_client_version() -> str: + try: + from importlib.metadata import PackageNotFoundError, version + except ImportError: # pragma: no cover + try: + from importlib_metadata import PackageNotFoundError, version + except ImportError: + return DEFAULT_CLIENT_VERSION + + try: + return version(DISTRIBUTION_NAME) + except PackageNotFoundError: + return DEFAULT_CLIENT_VERSION + + @dataclass class NATSSubscription: sid: int @@ -96,7 +112,7 @@ class NATSConnOptions: tls_client_key: Optional[str] = None tls_hostname: Optional[str] = None tls_verify: bool = False - version: str = pkg_resources.get_distribution("nats-python").version + version: str = _get_client_version() verbose: bool = False pedantic: bool = False