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", ] diff --git a/pymongo_vectorsearch_utils/util.py b/pymongo_vectorsearch_utils/util.py index e1c32a4..4865873 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 AsyncMongoClient, MongoClient +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)