From 144c878e3d3bc1ca66fbc740a4116e28677614ca Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Tue, 16 Sep 2025 12:27:17 -0400 Subject: [PATCH 1/3] INTPYTHON-758 - Add append_metadata helper --- pymongo_vectorsearch_utils/util.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pymongo_vectorsearch_utils/util.py b/pymongo_vectorsearch_utils/util.py index e1c32a4..b3047ff 100644 --- a/pymongo_vectorsearch_utils/util.py +++ b/pymongo_vectorsearch_utils/util.py @@ -1,6 +1,9 @@ import logging from typing import Any +from pymongo import MongoClient, AsyncMongoClient +from pymongo.driver_info import DriverInfo + logger = logging.getLogger(__file__) @@ -42,3 +45,9 @@ def oid_to_str(oid: Any) -> str: 24 character hex string. """ return str(oid) + + +def append_client_metadata(client: MongoClient | AsyncMongoClient, driver_info: DriverInfo) -> None: + # append_metadata was added in PyMongo 4.14.0, but is a valid database name on earlier versions + if callable(client.append_metadata): + client.append_metadata(driver_info) From da25a41bbdbc6a22bff92535c8ba53da8e1ad28e Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Tue, 16 Sep 2025 12:36:51 -0400 Subject: [PATCH 2/3] Linting --- pymongo_vectorsearch_utils/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pymongo_vectorsearch_utils/util.py b/pymongo_vectorsearch_utils/util.py index b3047ff..4865873 100644 --- a/pymongo_vectorsearch_utils/util.py +++ b/pymongo_vectorsearch_utils/util.py @@ -1,7 +1,7 @@ import logging from typing import Any -from pymongo import MongoClient, AsyncMongoClient +from pymongo import AsyncMongoClient, MongoClient from pymongo.driver_info import DriverInfo logger = logging.getLogger(__file__) From 42da262098a30a53f7bea56abfc16159d295f960 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Tue, 16 Sep 2025 13:28:04 -0400 Subject: [PATCH 3/3] Export at top level --- pymongo_vectorsearch_utils/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pymongo_vectorsearch_utils/__init__.py b/pymongo_vectorsearch_utils/__init__.py index 3027f7c..4c0c219 100644 --- a/pymongo_vectorsearch_utils/__init__.py +++ b/pymongo_vectorsearch_utils/__init__.py @@ -13,6 +13,7 @@ text_search_stage, vector_search_stage, ) +from .util import append_client_metadata __all__ = [ "__version__", @@ -26,4 +27,5 @@ "reciprocal_rank_stage", "final_hybrid_stage", "bulk_embed_and_insert_texts", + "append_client_metadata", ]