diff --git a/libs/langchain/langchain/document_transformers/__init__.py b/libs/langchain/langchain/document_transformers/__init__.py index 1704bb2c8d5..126ca1038df 100644 --- a/libs/langchain/langchain/document_transformers/__init__.py +++ b/libs/langchain/langchain/document_transformers/__init__.py @@ -14,29 +14,50 @@ Document """ # noqa: E501 -import warnings -from typing import Any +from typing import TYPE_CHECKING, Any -from langchain_core._api import LangChainDeprecationWarning +from langchain._api import create_importer -from langchain.utils.interactive_env import is_interactive_env +if TYPE_CHECKING: + from langchain_community.document_transformers import ( + BeautifulSoupTransformer, + DoctranPropertyExtractor, + DoctranQATransformer, + DoctranTextTranslator, + EmbeddingsClusteringFilter, + EmbeddingsRedundantFilter, + GoogleTranslateTransformer, + Html2TextTransformer, + LongContextReorder, + NucliaTextTransformer, + OpenAIMetadataTagger, + get_stateful_documents, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "BeautifulSoupTransformer": "langchain_community.document_transformers", + "DoctranQATransformer": "langchain_community.document_transformers", + "DoctranTextTranslator": "langchain_community.document_transformers", + "DoctranPropertyExtractor": "langchain_community.document_transformers", + "EmbeddingsClusteringFilter": "langchain_community.document_transformers", + "EmbeddingsRedundantFilter": "langchain_community.document_transformers", + "GoogleTranslateTransformer": "langchain_community.document_transformers", + "get_stateful_documents": "langchain_community.document_transformers", + "LongContextReorder": "langchain_community.document_transformers", + "NucliaTextTransformer": "langchain_community.document_transformers", + "OpenAIMetadataTagger": "langchain_community.document_transformers", + "Html2TextTransformer": "langchain_community.document_transformers", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) def __getattr__(name: str) -> Any: - from langchain_community import document_transformers - - # If not in interactive env, raise warning. - if not is_interactive_env(): - warnings.warn( - "Importing document transformers from langchain is deprecated. Importing " - "from langchain will no longer be supported as of langchain==0.2.0. " - "Please import from langchain-community instead:\n\n" - f"`from langchain_community.document_transformers import {name}`.\n\n" - "To install langchain-community run `pip install -U langchain-community`.", - category=LangChainDeprecationWarning, - ) - - return getattr(document_transformers, name) + """Look up attributes dynamically.""" + return _import_attribute(name) __all__ = [ diff --git a/libs/langchain/langchain/document_transformers/beautiful_soup_transformer.py b/libs/langchain/langchain/document_transformers/beautiful_soup_transformer.py index cf09fc0cc39..8028cff805c 100644 --- a/libs/langchain/langchain/document_transformers/beautiful_soup_transformer.py +++ b/libs/langchain/langchain/document_transformers/beautiful_soup_transformer.py @@ -1,5 +1,25 @@ -from langchain_community.document_transformers.beautiful_soup_transformer import ( - BeautifulSoupTransformer, -) +from typing import TYPE_CHECKING, Any -__all__ = ["BeautifulSoupTransformer"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import BeautifulSoupTransformer + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "BeautifulSoupTransformer": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "BeautifulSoupTransformer", +] diff --git a/libs/langchain/langchain/document_transformers/doctran_text_extract.py b/libs/langchain/langchain/document_transformers/doctran_text_extract.py index fc465cd6d24..d6fcb4f6388 100644 --- a/libs/langchain/langchain/document_transformers/doctran_text_extract.py +++ b/libs/langchain/langchain/document_transformers/doctran_text_extract.py @@ -1,5 +1,25 @@ -from langchain_community.document_transformers.doctran_text_extract import ( - DoctranPropertyExtractor, -) +from typing import TYPE_CHECKING, Any -__all__ = ["DoctranPropertyExtractor"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import DoctranPropertyExtractor + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "DoctranPropertyExtractor": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DoctranPropertyExtractor", +] diff --git a/libs/langchain/langchain/document_transformers/doctran_text_qa.py b/libs/langchain/langchain/document_transformers/doctran_text_qa.py index a3205a857ae..21dc7d2b014 100644 --- a/libs/langchain/langchain/document_transformers/doctran_text_qa.py +++ b/libs/langchain/langchain/document_transformers/doctran_text_qa.py @@ -1,5 +1,25 @@ -from langchain_community.document_transformers.doctran_text_qa import ( - DoctranQATransformer, -) +from typing import TYPE_CHECKING, Any -__all__ = ["DoctranQATransformer"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import DoctranQATransformer + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "DoctranQATransformer": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DoctranQATransformer", +] diff --git a/libs/langchain/langchain/document_transformers/doctran_text_translate.py b/libs/langchain/langchain/document_transformers/doctran_text_translate.py index 6bad19bb819..e0c48863259 100644 --- a/libs/langchain/langchain/document_transformers/doctran_text_translate.py +++ b/libs/langchain/langchain/document_transformers/doctran_text_translate.py @@ -1,5 +1,25 @@ -from langchain_community.document_transformers.doctran_text_translate import ( - DoctranTextTranslator, -) +from typing import TYPE_CHECKING, Any -__all__ = ["DoctranTextTranslator"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import DoctranTextTranslator + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "DoctranTextTranslator": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DoctranTextTranslator", +] diff --git a/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py b/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py index 1a162ea2591..2230444af6f 100644 --- a/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py +++ b/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py @@ -1,11 +1,44 @@ -from langchain_community.document_transformers.embeddings_redundant_filter import ( - EmbeddingsClusteringFilter, - EmbeddingsRedundantFilter, - _DocumentWithState, - _filter_similar_embeddings, - _get_embeddings_from_stateful_docs, - get_stateful_documents, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import ( + EmbeddingsClusteringFilter, + EmbeddingsRedundantFilter, + get_stateful_documents, + ) + from langchain_community.document_transformers.embeddings_redundant_filter import ( + _DocumentWithState, + _filter_similar_embeddings, + _get_embeddings_from_stateful_docs, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "EmbeddingsRedundantFilter": "langchain_community.document_transformers", + "EmbeddingsClusteringFilter": "langchain_community.document_transformers", + "_DocumentWithState": ( + "langchain_community.document_transformers.embeddings_redundant_filter" + ), + "get_stateful_documents": "langchain_community.document_transformers", + "_get_embeddings_from_stateful_docs": ( + "langchain_community.document_transformers.embeddings_redundant_filter" + ), + "_filter_similar_embeddings": ( + "langchain_community.document_transformers.embeddings_redundant_filter" + ), +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "EmbeddingsRedundantFilter", diff --git a/libs/langchain/langchain/document_transformers/google_translate.py b/libs/langchain/langchain/document_transformers/google_translate.py index def0452fd91..7fb2506818c 100644 --- a/libs/langchain/langchain/document_transformers/google_translate.py +++ b/libs/langchain/langchain/document_transformers/google_translate.py @@ -1,5 +1,25 @@ -from langchain_community.document_transformers.google_translate import ( - GoogleTranslateTransformer, -) +from typing import TYPE_CHECKING, Any -__all__ = ["GoogleTranslateTransformer"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import GoogleTranslateTransformer + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "GoogleTranslateTransformer": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "GoogleTranslateTransformer", +] diff --git a/libs/langchain/langchain/document_transformers/html2text.py b/libs/langchain/langchain/document_transformers/html2text.py index 79987f9fc00..307d455955b 100644 --- a/libs/langchain/langchain/document_transformers/html2text.py +++ b/libs/langchain/langchain/document_transformers/html2text.py @@ -1,3 +1,25 @@ -from langchain_community.document_transformers.html2text import Html2TextTransformer +from typing import TYPE_CHECKING, Any -__all__ = ["Html2TextTransformer"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import Html2TextTransformer + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "Html2TextTransformer": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "Html2TextTransformer", +] diff --git a/libs/langchain/langchain/document_transformers/long_context_reorder.py b/libs/langchain/langchain/document_transformers/long_context_reorder.py index 0490757e19d..221ffda0b2e 100644 --- a/libs/langchain/langchain/document_transformers/long_context_reorder.py +++ b/libs/langchain/langchain/document_transformers/long_context_reorder.py @@ -1,5 +1,23 @@ -from langchain_community.document_transformers.long_context_reorder import ( - LongContextReorder, -) +from typing import TYPE_CHECKING, Any -__all__ = ["LongContextReorder"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import LongContextReorder + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"LongContextReorder": "langchain_community.document_transformers"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "LongContextReorder", +] diff --git a/libs/langchain/langchain/document_transformers/nuclia_text_transform.py b/libs/langchain/langchain/document_transformers/nuclia_text_transform.py index 694cda28001..877ec94ea76 100644 --- a/libs/langchain/langchain/document_transformers/nuclia_text_transform.py +++ b/libs/langchain/langchain/document_transformers/nuclia_text_transform.py @@ -1,5 +1,25 @@ -from langchain_community.document_transformers.nuclia_text_transform import ( - NucliaTextTransformer, -) +from typing import TYPE_CHECKING, Any -__all__ = ["NucliaTextTransformer"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import NucliaTextTransformer + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "NucliaTextTransformer": "langchain_community.document_transformers" +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "NucliaTextTransformer", +] diff --git a/libs/langchain/langchain/document_transformers/openai_functions.py b/libs/langchain/langchain/document_transformers/openai_functions.py index 1a540acde7f..0daeabf5e96 100644 --- a/libs/langchain/langchain/document_transformers/openai_functions.py +++ b/libs/langchain/langchain/document_transformers/openai_functions.py @@ -1,6 +1,32 @@ -from langchain_community.document_transformers.openai_functions import ( - OpenAIMetadataTagger, - create_metadata_tagger, -) +from typing import TYPE_CHECKING, Any -__all__ = ["OpenAIMetadataTagger", "create_metadata_tagger"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.document_transformers import OpenAIMetadataTagger + from langchain_community.document_transformers.openai_functions import ( + create_metadata_tagger, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "OpenAIMetadataTagger": "langchain_community.document_transformers", + "create_metadata_tagger": ( + "langchain_community.document_transformers.openai_functions" + ), +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "OpenAIMetadataTagger", + "create_metadata_tagger", +]