mirror of
https://github.com/hwchase17/langchain
synced 2024-11-08 07:10:35 +00:00
ed58eeb9c5
Moved the following modules to new package langchain-community in a backwards compatible fashion: ``` mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community ``` Moved the following to core ``` mv langchain/langchain/utils/json_schema.py core/langchain_core/utils mv langchain/langchain/utils/html.py core/langchain_core/utils mv langchain/langchain/utils/strings.py core/langchain_core/utils cat langchain/langchain/utils/env.py >> core/langchain_core/utils/env.py rm langchain/langchain/utils/env.py ``` See .scripts/community_split/script_integrations.sh for all changes
66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
import os
|
|
|
|
import py
|
|
import pytest
|
|
|
|
from langchain_community.document_loaders import GitLoader
|
|
|
|
|
|
def init_repo(tmpdir: py.path.local, dir_name: str) -> str:
|
|
from git import Repo
|
|
|
|
repo_dir = tmpdir.mkdir(dir_name)
|
|
repo = Repo.init(repo_dir)
|
|
git = repo.git
|
|
git.checkout(b="main")
|
|
|
|
git.config("user.name", "Test User")
|
|
git.config("user.email", "test@example.com")
|
|
|
|
sample_file = "file.txt"
|
|
with open(os.path.join(repo_dir, sample_file), "w") as f:
|
|
f.write("content")
|
|
git.add([sample_file])
|
|
git.commit(m="Initial commit")
|
|
|
|
return str(repo_dir)
|
|
|
|
|
|
@pytest.mark.requires("git")
|
|
def test_load_twice(tmpdir: py.path.local) -> None:
|
|
"""
|
|
Test that loading documents twice from the same repository does not raise an error.
|
|
"""
|
|
|
|
clone_url = init_repo(tmpdir, "remote_repo")
|
|
|
|
repo_path = tmpdir.mkdir("local_repo").strpath
|
|
loader = GitLoader(repo_path=repo_path, clone_url=clone_url)
|
|
|
|
documents = loader.load()
|
|
assert len(documents) == 1
|
|
|
|
documents = loader.load()
|
|
assert len(documents) == 1
|
|
|
|
|
|
@pytest.mark.requires("git")
|
|
def test_clone_different_repo(tmpdir: py.path.local) -> None:
|
|
"""
|
|
Test that trying to clone a different repository into a directory already
|
|
containing a clone raises a ValueError.
|
|
"""
|
|
|
|
clone_url = init_repo(tmpdir, "remote_repo")
|
|
|
|
repo_path = tmpdir.mkdir("local_repo").strpath
|
|
loader = GitLoader(repo_path=repo_path, clone_url=clone_url)
|
|
|
|
documents = loader.load()
|
|
assert len(documents) == 1
|
|
|
|
other_clone_url = init_repo(tmpdir, "other_remote_repo")
|
|
other_loader = GitLoader(repo_path=repo_path, clone_url=other_clone_url)
|
|
with pytest.raises(ValueError):
|
|
other_loader.load()
|