langflow-base-nightly 0.5.0.dev25__py3-none-any.whl → 0.5.0.dev27__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. langflow/components/__init__.py +273 -0
  2. langflow/components/_importing.py +37 -0
  3. langflow/components/aiml/__init__.py +32 -2
  4. langflow/components/amazon/__init__.py +34 -3
  5. langflow/components/anthropic/__init__.py +30 -1
  6. langflow/components/assemblyai/__init__.py +38 -5
  7. langflow/components/azure/__init__.py +32 -2
  8. langflow/components/baidu/__init__.py +30 -1
  9. langflow/components/cleanlab/__init__.py +39 -4
  10. langflow/components/cloudflare/__init__.py +30 -1
  11. langflow/components/cohere/__init__.py +39 -4
  12. langflow/components/composio/__init__.py +40 -6
  13. langflow/components/crewai/__init__.py +40 -6
  14. langflow/components/custom_component/__init__.py +30 -1
  15. langflow/components/datastax/__init__.py +54 -13
  16. langflow/components/deepseek/__init__.py +33 -2
  17. langflow/components/docling/__init__.py +36 -4
  18. langflow/components/embeddings/__init__.py +32 -4
  19. langflow/components/firecrawl/__init__.py +42 -5
  20. langflow/components/groq/__init__.py +33 -2
  21. langflow/components/helpers/__init__.py +42 -7
  22. langflow/components/huggingface/__init__.py +32 -2
  23. langflow/components/ibm/__init__.py +32 -2
  24. langflow/components/input_output/__init__.py +36 -4
  25. langflow/components/langchain_utilities/__init__.py +80 -26
  26. langflow/components/langchain_utilities/conversation.py +1 -1
  27. langflow/components/langchain_utilities/llm_checker.py +1 -1
  28. langflow/components/langchain_utilities/llm_math.py +1 -1
  29. langflow/components/langchain_utilities/retrieval_qa.py +4 -2
  30. langflow/components/langchain_utilities/sql_generator.py +1 -1
  31. langflow/components/lmstudio/__init__.py +32 -2
  32. langflow/components/logic/__init__.py +42 -7
  33. langflow/components/maritalk/__init__.py +30 -1
  34. langflow/components/mistral/__init__.py +36 -3
  35. langflow/components/models/__init__.py +32 -2
  36. langflow/components/notdiamond/__init__.py +36 -0
  37. langflow/components/novita/__init__.py +30 -1
  38. langflow/components/nvidia/__init__.py +45 -7
  39. langflow/components/ollama/__init__.py +32 -2
  40. langflow/components/openai/__init__.py +32 -2
  41. langflow/components/openrouter/__init__.py +30 -1
  42. langflow/components/perplexity/__init__.py +33 -2
  43. langflow/components/processing/__init__.py +90 -23
  44. langflow/components/prototypes/__init__.py +30 -1
  45. langflow/components/sambanova/__init__.py +30 -1
  46. langflow/components/scrapegraph/__init__.py +39 -4
  47. langflow/components/searchapi/__init__.py +36 -0
  48. langflow/components/tools/__init__.py +54 -19
  49. langflow/components/twelvelabs/__init__.py +42 -7
  50. langflow/components/vectorstores/__init__.py +76 -24
  51. langflow/components/vertexai/__init__.py +32 -2
  52. langflow/components/xai/__init__.py +30 -1
  53. langflow/components/youtube/__init__.py +42 -7
  54. {langflow_base_nightly-0.5.0.dev25.dist-info → langflow_base_nightly-0.5.0.dev27.dist-info}/METADATA +1 -1
  55. {langflow_base_nightly-0.5.0.dev25.dist-info → langflow_base_nightly-0.5.0.dev27.dist-info}/RECORD +57 -57
  56. langflow/components/vectara/__init__.py +0 -0
  57. {langflow_base_nightly-0.5.0.dev25.dist-info → langflow_base_nightly-0.5.0.dev27.dist-info}/WHEEL +0 -0
  58. {langflow_base_nightly-0.5.0.dev25.dist-info → langflow_base_nightly-0.5.0.dev27.dist-info}/entry_points.txt +0 -0
@@ -1,26 +1,71 @@
1
- from .alter_metadata import AlterMetadataComponent
2
- from .batch_run import BatchRunComponent
3
- from .combine_text import CombineTextComponent
4
- from .converter import TypeConverterComponent
5
- from .create_data import CreateDataComponent
6
- from .data_operations import DataOperationsComponent
7
- from .extract_key import ExtractDataKeyComponent
8
- from .filter_data_values import DataFilterComponent
9
- from .json_cleaner import JSONCleaner
10
- from .lambda_filter import LambdaFilterComponent
11
- from .llm_router import LLMRouterComponent
12
- from .merge_data import MergeDataComponent
13
- from .message_to_data import MessageToDataComponent
14
- from .parse_data import ParseDataComponent
15
- from .parse_json_data import ParseJSONDataComponent
16
- from .parser import ParserComponent
17
- from .prompt import PromptComponent
18
- from .python_repl_core import PythonREPLComponent
19
- from .regex import RegexExtractorComponent
20
- from .select_data import SelectDataComponent
21
- from .split_text import SplitTextComponent
22
- from .structured_output import StructuredOutputComponent
23
- from .update_data import UpdateDataComponent
1
+ """Processing components for LangFlow."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING, Any
6
+
7
+ from langflow.components._importing import import_mod
8
+
9
+ if TYPE_CHECKING:
10
+ from langflow.components.processing.alter_metadata import AlterMetadataComponent
11
+ from langflow.components.processing.batch_run import BatchRunComponent
12
+ from langflow.components.processing.combine_text import CombineTextComponent
13
+ from langflow.components.processing.converter import TypeConverterComponent
14
+ from langflow.components.processing.create_data import CreateDataComponent
15
+ from langflow.components.processing.data_operations import DataOperationsComponent
16
+ from langflow.components.processing.data_to_dataframe import DataToDataFrameComponent
17
+ from langflow.components.processing.dataframe_operations import DataFrameOperationsComponent
18
+ from langflow.components.processing.extract_key import ExtractDataKeyComponent
19
+ from langflow.components.processing.filter_data import FilterDataComponent
20
+ from langflow.components.processing.filter_data_values import DataFilterComponent
21
+ from langflow.components.processing.json_cleaner import JSONCleaner
22
+ from langflow.components.processing.lambda_filter import LambdaFilterComponent
23
+ from langflow.components.processing.llm_router import LLMRouterComponent
24
+ from langflow.components.processing.merge_data import MergeDataComponent
25
+ from langflow.components.processing.message_to_data import MessageToDataComponent
26
+ from langflow.components.processing.parse_data import ParseDataComponent
27
+ from langflow.components.processing.parse_dataframe import ParseDataFrameComponent
28
+ from langflow.components.processing.parse_json_data import ParseJSONDataComponent
29
+ from langflow.components.processing.parser import ParserComponent
30
+ from langflow.components.processing.prompt import PromptComponent
31
+ from langflow.components.processing.python_repl_core import PythonREPLComponent
32
+ from langflow.components.processing.regex import RegexExtractorComponent
33
+ from langflow.components.processing.save_file import SaveToFileComponent
34
+ from langflow.components.processing.select_data import SelectDataComponent
35
+ from langflow.components.processing.split_text import SplitTextComponent
36
+ from langflow.components.processing.structured_output import StructuredOutputComponent
37
+ from langflow.components.processing.update_data import UpdateDataComponent
38
+
39
+ _dynamic_imports = {
40
+ "AlterMetadataComponent": "alter_metadata",
41
+ "BatchRunComponent": "batch_run",
42
+ "CombineTextComponent": "combine_text",
43
+ "TypeConverterComponent": "converter",
44
+ "CreateDataComponent": "create_data",
45
+ "DataOperationsComponent": "data_operations",
46
+ "DataToDataFrameComponent": "data_to_dataframe",
47
+ "DataFrameOperationsComponent": "dataframe_operations",
48
+ "ExtractDataKeyComponent": "extract_key",
49
+ "FilterDataComponent": "filter_data",
50
+ "DataFilterComponent": "filter_data_values",
51
+ "JSONCleaner": "json_cleaner",
52
+ "LambdaFilterComponent": "lambda_filter",
53
+ "LLMRouterComponent": "llm_router",
54
+ "MergeDataComponent": "merge_data",
55
+ "MessageToDataComponent": "message_to_data",
56
+ "ParseDataComponent": "parse_data",
57
+ "ParseDataFrameComponent": "parse_dataframe",
58
+ "ParseJSONDataComponent": "parse_json_data",
59
+ "ParserComponent": "parser",
60
+ "PromptComponent": "prompt",
61
+ "PythonREPLComponent": "python_repl_core",
62
+ "RegexExtractorComponent": "regex",
63
+ "SaveToFileComponent": "save_file",
64
+ "SelectDataComponent": "select_data",
65
+ "SplitTextComponent": "split_text",
66
+ "StructuredOutputComponent": "structured_output",
67
+ "UpdateDataComponent": "update_data",
68
+ }
24
69
 
25
70
  __all__ = [
26
71
  "AlterMetadataComponent",
@@ -28,8 +73,11 @@ __all__ = [
28
73
  "CombineTextComponent",
29
74
  "CreateDataComponent",
30
75
  "DataFilterComponent",
76
+ "DataFrameOperationsComponent",
31
77
  "DataOperationsComponent",
78
+ "DataToDataFrameComponent",
32
79
  "ExtractDataKeyComponent",
80
+ "FilterDataComponent",
33
81
  "JSONCleaner",
34
82
  "LLMRouterComponent",
35
83
  "LambdaFilterComponent",
@@ -42,9 +90,28 @@ __all__ = [
42
90
  "PromptComponent",
43
91
  "PythonREPLComponent",
44
92
  "RegexExtractorComponent",
93
+ "SaveToFileComponent",
45
94
  "SelectDataComponent",
46
95
  "SplitTextComponent",
47
96
  "StructuredOutputComponent",
48
97
  "TypeConverterComponent",
49
98
  "UpdateDataComponent",
50
99
  ]
100
+
101
+
102
+ def __getattr__(attr_name: str) -> Any:
103
+ """Lazily import processing components on attribute access."""
104
+ if attr_name not in _dynamic_imports:
105
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
106
+ raise AttributeError(msg)
107
+ try:
108
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
109
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
110
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
111
+ raise AttributeError(msg) from e
112
+ globals()[attr_name] = result
113
+ return result
114
+
115
+
116
+ def __dir__() -> list[str]:
117
+ return list(__all__)
@@ -1,5 +1,34 @@
1
- from .python_function import PythonFunctionComponent
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from .python_function import PythonFunctionComponent
9
+
10
+ _dynamic_imports = {
11
+ "PythonFunctionComponent": "python_function",
12
+ }
2
13
 
3
14
  __all__ = [
4
15
  "PythonFunctionComponent",
5
16
  ]
17
+
18
+
19
+ def __getattr__(attr_name: str) -> Any:
20
+ """Lazily import prototype components on attribute access."""
21
+ if attr_name not in _dynamic_imports:
22
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
23
+ raise AttributeError(msg)
24
+ try:
25
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
26
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
27
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
28
+ raise AttributeError(msg) from e
29
+ globals()[attr_name] = result
30
+ return result
31
+
32
+
33
+ def __dir__() -> list[str]:
34
+ return list(__all__)
@@ -1,3 +1,32 @@
1
- from .sambanova import SambaNovaComponent
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from langflow.components.sambanova.sambanova import SambaNovaComponent
9
+
10
+ _dynamic_imports = {
11
+ "SambaNovaComponent": "sambanova",
12
+ }
2
13
 
3
14
  __all__ = ["SambaNovaComponent"]
15
+
16
+
17
+ def __getattr__(attr_name: str) -> Any:
18
+ """Lazily import sambanova components on attribute access."""
19
+ if attr_name not in _dynamic_imports:
20
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
21
+ raise AttributeError(msg)
22
+ try:
23
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
24
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
25
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
26
+ raise AttributeError(msg) from e
27
+ globals()[attr_name] = result
28
+ return result
29
+
30
+
31
+ def __dir__() -> list[str]:
32
+ return list(__all__)
@@ -1,5 +1,40 @@
1
- from .scrapegraph_markdownify_api import ScrapeGraphMarkdownifyApi
2
- from .scrapegraph_search_api import ScrapeGraphSearchApi
3
- from .scrapegraph_smart_scraper_api import ScrapeGraphSmartScraperApi
1
+ from __future__ import annotations
4
2
 
5
- __all__ = ["ScrapeGraphMarkdownifyApi", "ScrapeGraphSearchApi", "ScrapeGraphSmartScraperApi"]
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from .scrapegraph_markdownify_api import ScrapeGraphMarkdownifyApi
9
+ from .scrapegraph_search_api import ScrapeGraphSearchApi
10
+ from .scrapegraph_smart_scraper_api import ScrapeGraphSmartScraperApi
11
+
12
+ _dynamic_imports = {
13
+ "ScrapeGraphMarkdownifyApi": "scrapegraph_markdownify_api",
14
+ "ScrapeGraphSearchApi": "scrapegraph_search_api",
15
+ "ScrapeGraphSmartScraperApi": "scrapegraph_smart_scraper_api",
16
+ }
17
+
18
+ __all__ = [
19
+ "ScrapeGraphMarkdownifyApi",
20
+ "ScrapeGraphSearchApi",
21
+ "ScrapeGraphSmartScraperApi",
22
+ ]
23
+
24
+
25
+ def __getattr__(attr_name: str) -> Any:
26
+ """Lazily import scrapegraph components on attribute access."""
27
+ if attr_name not in _dynamic_imports:
28
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
29
+ raise AttributeError(msg)
30
+ try:
31
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
32
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
33
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
34
+ raise AttributeError(msg) from e
35
+ globals()[attr_name] = result
36
+ return result
37
+
38
+
39
+ def __dir__() -> list[str]:
40
+ return list(__all__)
@@ -0,0 +1,36 @@
1
+ """SearchAPI components for LangFlow."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING, Any
6
+
7
+ from langflow.components._importing import import_mod
8
+
9
+ if TYPE_CHECKING:
10
+ from langflow.components.searchapi.search import SearchComponent
11
+
12
+ _dynamic_imports = {
13
+ "SearchComponent": "search",
14
+ }
15
+
16
+ __all__ = [
17
+ "SearchComponent",
18
+ ]
19
+
20
+
21
+ def __getattr__(attr_name: str) -> Any:
22
+ """Lazily import searchapi components on attribute access."""
23
+ if attr_name not in _dynamic_imports:
24
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
25
+ raise AttributeError(msg)
26
+ try:
27
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
28
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
29
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
30
+ raise AttributeError(msg) from e
31
+ globals()[attr_name] = result
32
+ return result
33
+
34
+
35
+ def __dir__() -> list[str]:
36
+ return list(__all__)
@@ -1,29 +1,43 @@
1
+ from __future__ import annotations
2
+
1
3
  import warnings
4
+ from typing import TYPE_CHECKING, Any
2
5
 
3
6
  from langchain_core._api.deprecation import LangChainDeprecationWarning
4
7
 
5
- from .calculator import CalculatorToolComponent
6
- from .google_search_api import GoogleSearchAPIComponent
7
- from .google_serper_api import GoogleSerperAPIComponent
8
- from .python_code_structured_tool import PythonCodeStructuredTool
9
- from .python_repl import PythonREPLToolComponent
10
- from .search_api import SearchAPIComponent
11
- from .searxng import SearXNGToolComponent
12
- from .serp_api import SerpAPIComponent
13
- from .wikidata_api import WikidataAPIComponent
14
- from .wikipedia_api import WikipediaAPIComponent
15
- from .yahoo_finance import YfinanceToolComponent
16
-
17
- with warnings.catch_warnings():
18
- warnings.simplefilter("ignore", LangChainDeprecationWarning)
8
+ from langflow.components._importing import import_mod
9
+
10
+ if TYPE_CHECKING:
11
+ from .calculator import CalculatorToolComponent
12
+ from .google_search_api import GoogleSearchAPIComponent
13
+ from .google_serper_api import GoogleSerperAPIComponent
14
+ from .python_code_structured_tool import PythonCodeStructuredTool
15
+ from .python_repl import PythonREPLToolComponent
16
+ from .search_api import SearchAPIComponent
17
+ from .searxng import SearXNGToolComponent
18
+ from .serp_api import SerpAPIComponent
19
+ from .tavily_search_tool import TavilySearchToolComponent
20
+ from .wikidata_api import WikidataAPIComponent
21
+ from .wikipedia_api import WikipediaAPIComponent
22
+ from .yahoo_finance import YfinanceToolComponent
23
+
24
+ _dynamic_imports = {
25
+ "CalculatorToolComponent": "calculator",
26
+ "GoogleSearchAPIComponent": "google_search_api",
27
+ "GoogleSerperAPIComponent": "google_serper_api",
28
+ "PythonCodeStructuredTool": "python_code_structured_tool",
29
+ "PythonREPLToolComponent": "python_repl",
30
+ "SearchAPIComponent": "search_api",
31
+ "SearXNGToolComponent": "searxng",
32
+ "SerpAPIComponent": "serp_api",
33
+ "TavilySearchToolComponent": "tavily_search_tool",
34
+ "WikidataAPIComponent": "wikidata_api",
35
+ "WikipediaAPIComponent": "wikipedia_api",
36
+ "YfinanceToolComponent": "yahoo_finance",
37
+ }
19
38
 
20
39
  __all__ = [
21
- "AstraDBCQLToolComponent",
22
- "AstraDBToolComponent",
23
40
  "CalculatorToolComponent",
24
- "DuckDuckGoSearchComponent",
25
- "ExaSearchToolkit",
26
- "GleanSearchAPIComponent",
27
41
  "GoogleSearchAPIComponent",
28
42
  "GoogleSerperAPIComponent",
29
43
  "PythonCodeStructuredTool",
@@ -31,7 +45,28 @@ __all__ = [
31
45
  "SearXNGToolComponent",
32
46
  "SearchAPIComponent",
33
47
  "SerpAPIComponent",
48
+ "TavilySearchToolComponent",
34
49
  "WikidataAPIComponent",
35
50
  "WikipediaAPIComponent",
36
51
  "YfinanceToolComponent",
37
52
  ]
53
+
54
+
55
+ def __getattr__(attr_name: str) -> Any:
56
+ """Lazily import tool components on attribute access."""
57
+ if attr_name not in _dynamic_imports:
58
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
59
+ raise AttributeError(msg)
60
+ try:
61
+ with warnings.catch_warnings():
62
+ warnings.simplefilter("ignore", LangChainDeprecationWarning)
63
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
64
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
65
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
66
+ raise AttributeError(msg) from e
67
+ globals()[attr_name] = result
68
+ return result
69
+
70
+
71
+ def __dir__() -> list[str]:
72
+ return list(__all__)
@@ -1,10 +1,27 @@
1
- from .convert_astra_results import ConvertAstraToTwelveLabs
2
- from .pegasus_index import PegasusIndexVideo
3
- from .split_video import SplitVideoComponent
4
- from .text_embeddings import TwelveLabsTextEmbeddingsComponent
5
- from .twelvelabs_pegasus import TwelveLabsPegasus
6
- from .video_embeddings import TwelveLabsVideoEmbeddingsComponent
7
- from .video_file import VideoFileComponent
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from .convert_astra_results import ConvertAstraToTwelveLabs
9
+ from .pegasus_index import PegasusIndexVideo
10
+ from .split_video import SplitVideoComponent
11
+ from .text_embeddings import TwelveLabsTextEmbeddingsComponent
12
+ from .twelvelabs_pegasus import TwelveLabsPegasus
13
+ from .video_embeddings import TwelveLabsVideoEmbeddingsComponent
14
+ from .video_file import VideoFileComponent
15
+
16
+ _dynamic_imports = {
17
+ "ConvertAstraToTwelveLabs": "convert_astra_results",
18
+ "PegasusIndexVideo": "pegasus_index",
19
+ "SplitVideoComponent": "split_video",
20
+ "TwelveLabsPegasus": "twelvelabs_pegasus",
21
+ "TwelveLabsTextEmbeddingsComponent": "text_embeddings",
22
+ "TwelveLabsVideoEmbeddingsComponent": "video_embeddings",
23
+ "VideoFileComponent": "video_file",
24
+ }
8
25
 
9
26
  __all__ = [
10
27
  "ConvertAstraToTwelveLabs",
@@ -15,3 +32,21 @@ __all__ = [
15
32
  "TwelveLabsVideoEmbeddingsComponent",
16
33
  "VideoFileComponent",
17
34
  ]
35
+
36
+
37
+ def __getattr__(attr_name: str) -> Any:
38
+ """Lazily import twelvelabs components on attribute access."""
39
+ if attr_name not in _dynamic_imports:
40
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
41
+ raise AttributeError(msg)
42
+ try:
43
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
44
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
45
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
46
+ raise AttributeError(msg) from e
47
+ globals()[attr_name] = result
48
+ return result
49
+
50
+
51
+ def __dir__() -> list[str]:
52
+ return list(__all__)
@@ -1,27 +1,61 @@
1
- from .astradb import AstraDBVectorStoreComponent
2
- from .astradb_graph import AstraDBGraphVectorStoreComponent
3
- from .cassandra import CassandraVectorStoreComponent
4
- from .cassandra_graph import CassandraGraphVectorStoreComponent
5
- from .chroma import ChromaVectorStoreComponent
6
- from .clickhouse import ClickhouseVectorStoreComponent
7
- from .couchbase import CouchbaseVectorStoreComponent
8
- from .elasticsearch import ElasticsearchVectorStoreComponent
9
- from .faiss import FaissVectorStoreComponent
10
- from .graph_rag import GraphRAGComponent
11
- from .hcd import HCDVectorStoreComponent
12
- from .local_db import LocalDBComponent
13
- from .milvus import MilvusVectorStoreComponent
14
- from .mongodb_atlas import MongoVectorStoreComponent
15
- from .opensearch import OpenSearchVectorStoreComponent
16
- from .pgvector import PGVectorStoreComponent
17
- from .pinecone import PineconeVectorStoreComponent
18
- from .qdrant import QdrantVectorStoreComponent
19
- from .redis import RedisVectorStoreComponent
20
- from .supabase import SupabaseVectorStoreComponent
21
- from .upstash import UpstashVectorStoreComponent
22
- from .vectara import VectaraVectorStoreComponent
23
- from .vectara_rag import VectaraRagComponent
24
- from .weaviate import WeaviateVectorStoreComponent
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from .astradb import AstraDBVectorStoreComponent
9
+ from .astradb_graph import AstraDBGraphVectorStoreComponent
10
+ from .cassandra import CassandraVectorStoreComponent
11
+ from .cassandra_graph import CassandraGraphVectorStoreComponent
12
+ from .chroma import ChromaVectorStoreComponent
13
+ from .clickhouse import ClickhouseVectorStoreComponent
14
+ from .couchbase import CouchbaseVectorStoreComponent
15
+ from .elasticsearch import ElasticsearchVectorStoreComponent
16
+ from .faiss import FaissVectorStoreComponent
17
+ from .graph_rag import GraphRAGComponent
18
+ from .hcd import HCDVectorStoreComponent
19
+ from .local_db import LocalDBComponent
20
+ from .milvus import MilvusVectorStoreComponent
21
+ from .mongodb_atlas import MongoVectorStoreComponent
22
+ from .opensearch import OpenSearchVectorStoreComponent
23
+ from .pgvector import PGVectorStoreComponent
24
+ from .pinecone import PineconeVectorStoreComponent
25
+ from .qdrant import QdrantVectorStoreComponent
26
+ from .redis import RedisVectorStoreComponent
27
+ from .supabase import SupabaseVectorStoreComponent
28
+ from .upstash import UpstashVectorStoreComponent
29
+ from .vectara import VectaraVectorStoreComponent
30
+ from .vectara_rag import VectaraRagComponent
31
+ from .weaviate import WeaviateVectorStoreComponent
32
+
33
+ _dynamic_imports = {
34
+ "AstraDBVectorStoreComponent": "astradb",
35
+ "AstraDBGraphVectorStoreComponent": "astradb_graph",
36
+ "CassandraVectorStoreComponent": "cassandra",
37
+ "CassandraGraphVectorStoreComponent": "cassandra_graph",
38
+ "ChromaVectorStoreComponent": "chroma",
39
+ "ClickhouseVectorStoreComponent": "clickhouse",
40
+ "CouchbaseVectorStoreComponent": "couchbase",
41
+ "ElasticsearchVectorStoreComponent": "elasticsearch",
42
+ "FaissVectorStoreComponent": "faiss",
43
+ "GraphRAGComponent": "graph_rag",
44
+ "HCDVectorStoreComponent": "hcd",
45
+ "LocalDBComponent": "local_db",
46
+ "MilvusVectorStoreComponent": "milvus",
47
+ "MongoVectorStoreComponent": "mongodb_atlas",
48
+ "OpenSearchVectorStoreComponent": "opensearch",
49
+ "PGVectorStoreComponent": "pgvector",
50
+ "PineconeVectorStoreComponent": "pinecone",
51
+ "QdrantVectorStoreComponent": "qdrant",
52
+ "RedisVectorStoreComponent": "redis",
53
+ "SupabaseVectorStoreComponent": "supabase",
54
+ "UpstashVectorStoreComponent": "upstash",
55
+ "VectaraVectorStoreComponent": "vectara",
56
+ "VectaraRagComponent": "vectara_rag",
57
+ "WeaviateVectorStoreComponent": "weaviate",
58
+ }
25
59
 
26
60
  __all__ = [
27
61
  "AstraDBGraphVectorStoreComponent",
@@ -49,3 +83,21 @@ __all__ = [
49
83
  "VectaraVectorStoreComponent",
50
84
  "WeaviateVectorStoreComponent",
51
85
  ]
86
+
87
+
88
+ def __getattr__(attr_name: str) -> Any:
89
+ """Lazily import vectorstore components on attribute access."""
90
+ if attr_name not in _dynamic_imports:
91
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
92
+ raise AttributeError(msg)
93
+ try:
94
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
95
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
96
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
97
+ raise AttributeError(msg) from e
98
+ globals()[attr_name] = result
99
+ return result
100
+
101
+
102
+ def __dir__() -> list[str]:
103
+ return list(__all__)
@@ -1,7 +1,37 @@
1
- from .vertexai import ChatVertexAIComponent
2
- from .vertexai_embeddings import VertexAIEmbeddingsComponent
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from .vertexai import ChatVertexAIComponent
9
+ from .vertexai_embeddings import VertexAIEmbeddingsComponent
10
+
11
+ _dynamic_imports = {
12
+ "ChatVertexAIComponent": "vertexai",
13
+ "VertexAIEmbeddingsComponent": "vertexai_embeddings",
14
+ }
3
15
 
4
16
  __all__ = [
5
17
  "ChatVertexAIComponent",
6
18
  "VertexAIEmbeddingsComponent",
7
19
  ]
20
+
21
+
22
+ def __getattr__(attr_name: str) -> Any:
23
+ """Lazily import vertexai components on attribute access."""
24
+ if attr_name not in _dynamic_imports:
25
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
26
+ raise AttributeError(msg)
27
+ try:
28
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
29
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
30
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
31
+ raise AttributeError(msg) from e
32
+ globals()[attr_name] = result
33
+ return result
34
+
35
+
36
+ def __dir__() -> list[str]:
37
+ return list(__all__)
@@ -1,3 +1,32 @@
1
- from .xai import XAIModelComponent
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING, Any
4
+
5
+ from langflow.components._importing import import_mod
6
+
7
+ if TYPE_CHECKING:
8
+ from langflow.components.xai.xai import XAIModelComponent
9
+
10
+ _dynamic_imports = {
11
+ "XAIModelComponent": "xai",
12
+ }
2
13
 
3
14
  __all__ = ["XAIModelComponent"]
15
+
16
+
17
+ def __getattr__(attr_name: str) -> Any:
18
+ """Lazily import xai components on attribute access."""
19
+ if attr_name not in _dynamic_imports:
20
+ msg = f"module '{__name__}' has no attribute '{attr_name}'"
21
+ raise AttributeError(msg)
22
+ try:
23
+ result = import_mod(attr_name, _dynamic_imports[attr_name], __spec__.parent)
24
+ except (ModuleNotFoundError, ImportError, AttributeError) as e:
25
+ msg = f"Could not import '{attr_name}' from '{__name__}': {e}"
26
+ raise AttributeError(msg) from e
27
+ globals()[attr_name] = result
28
+ return result
29
+
30
+
31
+ def __dir__() -> list[str]:
32
+ return list(__all__)