Skip to content

Commit 458fa7f

Browse files
committed
Move all associated tests
1 parent b29626a commit 458fa7f

26 files changed

+349
-151
lines changed

.github/workflows/_test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
python-version:
21-
- "3.9"
21+
- "3.10"
2222
- "3.13"
2323
name: "run test #${{ matrix.python-version }}"
2424
steps:

libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,12 @@
1212
MongoDBAtlasParentDocumentRetriever,
1313
)
1414
from langchain_mongodb_retrievers.self_querying import MongoDBAtlasSelfQueryRetriever
15+
from langchain_mongodb_retrievers.vectorstores import MongoDBAtlasVectorSearch
1516

1617
__all__ = [
1718
"MongoDBAtlasHybridSearchRetriever",
1819
"MongoDBAtlasFullTextSearchRetriever",
1920
"MongoDBAtlasParentDocumentRetriever",
2021
"MongoDBAtlasSelfQueryRetriever",
22+
"MongoDBAtlasVectorSearch",
2123
]

libs/langchain-mongodb/langchain_mongodb/cache.py renamed to libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/cache.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
from langchain_core.load.dump import dumps
1111
from langchain_core.load.load import loads
1212
from langchain_core.outputs import Generation
13+
from langchain_mongodb.utils import DRIVER_METADATA
1314
from pymongo import MongoClient
1415
from pymongo.collection import Collection
1516
from pymongo.database import Database
1617

17-
from langchain_mongodb.utils import DRIVER_METADATA
18-
from langchain_mongodb.vectorstores import MongoDBAtlasVectorSearch
18+
from langchain_mongodb_retrievers.vectorstores import MongoDBAtlasVectorSearch
1919

2020
logger = logging.getLogger(__file__)
2121

libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/full_text_search.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@
44
from langchain_core.callbacks.manager import CallbackManagerForRetrieverRun
55
from langchain_core.documents import Document
66
from langchain_core.retrievers import BaseRetriever
7-
from pydantic import Field
8-
from pymongo.collection import Collection
9-
107
from langchain_mongodb.pipelines import text_search_stage
118
from langchain_mongodb.utils import _append_client_metadata, make_serializable
9+
from pydantic import Field
10+
from pymongo.collection import Collection
1211

1312

1413
class MongoDBAtlasFullTextSearchRetriever(BaseRetriever):

libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/hybrid_search.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
from langchain_core.callbacks.manager import CallbackManagerForRetrieverRun
55
from langchain_core.documents import Document
66
from langchain_core.retrievers import BaseRetriever
7-
from pydantic import Field
8-
from pymongo.collection import Collection
9-
10-
from langchain_mongodb import MongoDBAtlasVectorSearch
117
from langchain_mongodb.pipelines import (
128
combine_pipelines,
139
final_hybrid_stage,
@@ -16,6 +12,10 @@
1612
vector_search_stage,
1713
)
1814
from langchain_mongodb.utils import make_serializable
15+
from pydantic import Field
16+
from pymongo.collection import Collection
17+
18+
from langchain_mongodb_retrievers.vectorstores import MongoDBAtlasVectorSearch
1919

2020

2121
class MongoDBAtlasHybridSearchRetriever(BaseRetriever):

libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/parent_document.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@
33
from typing import Any, List, Optional
44

55
import pymongo
6-
from langchain_classic.retrievers.parent_document_retriever import ParentDocumentRetriever
6+
from langchain_classic.retrievers.parent_document_retriever import (
7+
ParentDocumentRetriever,
8+
)
79
from langchain_core.callbacks import (
810
AsyncCallbackManagerForRetrieverRun,
911
CallbackManagerForRetrieverRun,
1012
)
1113
from langchain_core.documents import Document
1214
from langchain_core.embeddings import Embeddings
1315
from langchain_core.runnables import run_in_executor
14-
from langchain_text_splitters import TextSplitter
15-
from pymongo import MongoClient
16-
17-
from langchain_mongodb import MongoDBAtlasVectorSearch
1816
from langchain_mongodb.docstores import MongoDBDocStore
1917
from langchain_mongodb.pipelines import vector_search_stage
2018
from langchain_mongodb.utils import DRIVER_METADATA, make_serializable
19+
from langchain_text_splitters import TextSplitter
20+
from pymongo import MongoClient
21+
22+
from langchain_mongodb_retrievers.vectorstores import MongoDBAtlasVectorSearch
2123

2224

2325
class MongoDBAtlasParentDocumentRetriever(ParentDocumentRetriever):

libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/self_querying.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from langchain_core.vectorstores import VectorStore
1616
from pydantic import Field
1717

18-
from langchain_mongodb import MongoDBAtlasVectorSearch
18+
from langchain_mongodb_retrievers.vectorstores import MongoDBAtlasVectorSearch
1919

2020

2121
class MongoDBStructuredQueryTranslator(Visitor):
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""Various Utility Functions"""
2+
3+
from __future__ import annotations
4+
5+
import logging
6+
from importlib.metadata import version
7+
8+
from pymongo import MongoClient
9+
from pymongo.driver_info import DriverInfo
10+
11+
logger = logging.getLogger(__name__)
12+
13+
DRIVER_METADATA = DriverInfo(
14+
name="langchain-mongodb-retrievers", version=version("langchain-mongodb-retrievers")
15+
)
16+
17+
18+
def _append_client_metadata(client: MongoClient) -> None:
19+
# append_metadata was added in PyMongo 4.14.0, but is a valid database name on earlier versions
20+
if callable(client.append_metadata):
21+
client.append_metadata(DRIVER_METADATA)

libs/langchain-mongodb/langchain_mongodb/vectorstores.py renamed to libs/langchain-mongodb-retrievers/langchain_mongodb_retrievers/vectorstores.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
from langchain_core.embeddings import Embeddings
2323
from langchain_core.runnables.config import run_in_executor
2424
from langchain_core.vectorstores import VectorStore
25-
from pymongo import MongoClient, ReplaceOne
26-
from pymongo.collection import Collection
27-
from pymongo.errors import CollectionInvalid
28-
2925
from langchain_mongodb.index import (
3026
create_vector_search_index,
3127
update_vector_search_index,
@@ -39,6 +35,9 @@
3935
oid_to_str,
4036
str_to_oid,
4137
)
38+
from pymongo import MongoClient, ReplaceOne
39+
from pymongo.collection import Collection
40+
from pymongo.errors import CollectionInvalid
4241

4342
VST = TypeVar("VST", bound=VectorStore)
4443

@@ -356,7 +355,7 @@ def add_texts(
356355
metadatas_batch = []
357356
size = 0
358357
i = 0
359-
for j, (text, metadata) in enumerate(zip(texts, _metadatas)):
358+
for j, (text, metadata) in enumerate(zip(texts, _metadatas, strict=False)):
360359
size += len(text) + len(metadata)
361360
texts_batch.append(text)
362361
metadatas_batch.append(metadata)
@@ -442,7 +441,9 @@ def bulk_embed_and_insert_texts(
442441
self._embedding_key: embedding,
443442
**m,
444443
}
445-
for i, t, m, embedding in zip(ids, texts, metadatas, embeddings)
444+
for i, t, m, embedding in zip(
445+
ids, texts, metadatas, embeddings, strict=False
446+
)
446447
]
447448
operations = [ReplaceOne({"_id": doc["_id"]}, doc, upsert=True) for doc in docs]
448449
# insert the documents in MongoDB Atlas
@@ -478,7 +479,8 @@ def add_documents(
478479
start = 0
479480
for end in range(batch_size, n_docs + batch_size, batch_size):
480481
texts, metadatas = zip(
481-
*[(doc.page_content, doc.metadata) for doc in documents[start:end]]
482+
*[(doc.page_content, doc.metadata) for doc in documents[start:end]],
483+
strict=False,
482484
)
483485
result_ids.extend(
484486
self.bulk_embed_and_insert_texts(

libs/langchain-mongodb/tests/integration_tests/test_cache.py renamed to libs/langchain-mongodb-retrievers/tests/integration_tests/test_cache.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
from langchain_core.load.dump import dumps
1212
from langchain_core.messages import AIMessage, BaseMessage, HumanMessage
1313
from langchain_core.outputs import ChatGeneration, Generation, LLMResult
14-
from pymongo import MongoClient
15-
from pymongo.collection import Collection
16-
17-
from langchain_mongodb.cache import MongoDBAtlasSemanticCache, MongoDBCache
1814
from langchain_mongodb.index import (
1915
create_vector_search_index,
2016
)
17+
from pymongo import MongoClient
18+
from pymongo.collection import Collection
19+
20+
from langchain_mongodb_retrievers.cache import MongoDBAtlasSemanticCache, MongoDBCache
2121

2222
from ..utils import DB_NAME, ConsistentFakeEmbeddings, FakeChatModel, FakeLLM
2323

@@ -203,7 +203,7 @@ def test_mongodb_atlas_cache_matrix(
203203
for prompt_i_generations in generations
204204
]
205205

206-
for prompt_i, llm_generations_i in zip(prompts, llm_generations):
206+
for prompt_i, llm_generations_i in zip(prompts, llm_generations, strict=False):
207207
_execute_test(prompt_i, llm_string, llm_generations_i)
208208
assert llm.generate(prompts) == LLMResult(
209209
generations=llm_generations, llm_output={}

0 commit comments

Comments
 (0)