lfx-nightly 0.1.12.dev10__py3-none-any.whl → 0.1.12.dev12__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.
Potentially problematic release.
This version of lfx-nightly might be problematic. Click here for more details.
- lfx/base/agents/agent.py +1 -1
- lfx/base/composio/composio_base.py +1 -1
- lfx/components/agents/agent.py +2 -2
- lfx/components/clickhouse/clickhouse.py +3 -3
- lfx/components/cohere/cohere_models.py +1 -1
- lfx/components/composio/__init__.py +42 -0
- lfx/components/composio/airtable_composio.py +11 -0
- lfx/components/composio/asana_composio.py +11 -0
- lfx/components/composio/attio_composio.py +11 -0
- lfx/components/composio/calendly_composio.py +11 -0
- lfx/components/composio/contentful_composio.py +11 -0
- lfx/components/composio/discord_composio.py +11 -0
- lfx/components/composio/figma_composio.py +11 -0
- lfx/components/composio/googledocs_composio.py +11 -0
- lfx/components/composio/googlesheets_composio.py +11 -0
- lfx/components/composio/klaviyo_composio.py +11 -0
- lfx/components/composio/miro_composio.py +11 -0
- lfx/components/composio/notion_composio.py +11 -0
- lfx/components/composio/onedrive_composio.py +11 -0
- lfx/components/composio/wrike_composio.py +11 -0
- lfx/components/nvidia/system_assist.py +1 -1
- lfx/components/processing/converter.py +95 -6
- lfx/components/vectorstores/clickhouse.py +3 -3
- lfx/custom/custom_component/component.py +4 -3
- {lfx_nightly-0.1.12.dev10.dist-info → lfx_nightly-0.1.12.dev12.dist-info}/METADATA +1 -1
- {lfx_nightly-0.1.12.dev10.dist-info → lfx_nightly-0.1.12.dev12.dist-info}/RECORD +28 -14
- {lfx_nightly-0.1.12.dev10.dist-info → lfx_nightly-0.1.12.dev12.dist-info}/WHEEL +0 -0
- {lfx_nightly-0.1.12.dev10.dist-info → lfx_nightly-0.1.12.dev12.dist-info}/entry_points.txt +0 -0
lfx/base/agents/agent.py
CHANGED
|
@@ -254,7 +254,7 @@ class LCToolsAgentComponent(LCAgentComponent):
|
|
|
254
254
|
tools_names = ", ".join([tool.name for tool in self.tools])
|
|
255
255
|
return tools_names
|
|
256
256
|
|
|
257
|
-
def _get_tools(self) -> list[Tool]:
|
|
257
|
+
async def _get_tools(self) -> list[Tool]:
|
|
258
258
|
component_toolkit = _get_component_toolkit()
|
|
259
259
|
tools_names = self._build_tools_names()
|
|
260
260
|
agent_description = self.get_tool_description()
|
|
@@ -1950,7 +1950,7 @@ class ComposioBaseComponent(Component):
|
|
|
1950
1950
|
configured_tools.append(tool)
|
|
1951
1951
|
return configured_tools
|
|
1952
1952
|
|
|
1953
|
-
def _get_tools(self) -> list[Tool]:
|
|
1953
|
+
async def _get_tools(self) -> list[Tool]:
|
|
1954
1954
|
"""Get tools with cached results and optimized name sanitization."""
|
|
1955
1955
|
composio = self._build_wrapper()
|
|
1956
1956
|
self.set_default_tools()
|
lfx/components/agents/agent.py
CHANGED
|
@@ -179,7 +179,7 @@ class AgentComponent(ToolCallingAgentComponent):
|
|
|
179
179
|
if self.add_current_date_tool:
|
|
180
180
|
if not isinstance(self.tools, list): # type: ignore[has-type]
|
|
181
181
|
self.tools = []
|
|
182
|
-
current_date_tool = (CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)
|
|
182
|
+
current_date_tool = (await CurrentDateComponent(**self.get_base_args()).to_toolkit()).pop(0)
|
|
183
183
|
if not isinstance(current_date_tool, StructuredTool):
|
|
184
184
|
msg = "CurrentDateComponent must be converted to a StructuredTool"
|
|
185
185
|
raise TypeError(msg)
|
|
@@ -544,7 +544,7 @@ class AgentComponent(ToolCallingAgentComponent):
|
|
|
544
544
|
)
|
|
545
545
|
return dotdict({k: v.to_dict() if hasattr(v, "to_dict") else v for k, v in build_config.items()})
|
|
546
546
|
|
|
547
|
-
def _get_tools(self) -> list[Tool]:
|
|
547
|
+
async def _get_tools(self) -> list[Tool]:
|
|
548
548
|
component_toolkit = get_component_toolkit()
|
|
549
549
|
tools_names = self._build_tools_names()
|
|
550
550
|
agent_description = self.get_tool_description()
|
|
@@ -15,8 +15,8 @@ from lfx.schema.data import Data
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class ClickhouseVectorStoreComponent(LCVectorStoreComponent):
|
|
18
|
-
display_name = "
|
|
19
|
-
description = "
|
|
18
|
+
display_name = "ClickHouse"
|
|
19
|
+
description = "ClickHouse Vector Store with search capabilities"
|
|
20
20
|
name = "Clickhouse"
|
|
21
21
|
icon = "Clickhouse"
|
|
22
22
|
|
|
@@ -69,7 +69,7 @@ class ClickhouseVectorStoreComponent(LCVectorStoreComponent):
|
|
|
69
69
|
import clickhouse_connect
|
|
70
70
|
except ImportError as e:
|
|
71
71
|
msg = (
|
|
72
|
-
"Failed to import
|
|
72
|
+
"Failed to import ClickHouse dependencies. "
|
|
73
73
|
"Install it using `uv pip install langflow[clickhouse-connect] --pre`"
|
|
74
74
|
)
|
|
75
75
|
raise ImportError(msg) from e
|
|
@@ -10,7 +10,7 @@ from lfx.io import SecretStrInput, SliderInput
|
|
|
10
10
|
class CohereComponent(LCModelComponent):
|
|
11
11
|
display_name = "Cohere Language Models"
|
|
12
12
|
description = "Generate text using Cohere LLMs."
|
|
13
|
-
documentation = "https://python.langchain.com/docs/
|
|
13
|
+
documentation = "https://python.langchain.com/docs/integrations/llms/cohere/"
|
|
14
14
|
icon = "Cohere"
|
|
15
15
|
name = "CohereModel"
|
|
16
16
|
|
|
@@ -5,19 +5,33 @@ from typing import TYPE_CHECKING, Any
|
|
|
5
5
|
from lfx.components._importing import import_mod
|
|
6
6
|
|
|
7
7
|
if TYPE_CHECKING:
|
|
8
|
+
from .airtable_composio import ComposioAirtableAPIComponent
|
|
9
|
+
from .asana_composio import ComposioAsanaAPIComponent
|
|
10
|
+
from .attio_composio import ComposioAttioAPIComponent
|
|
11
|
+
from .calendly_composio import ComposioCalendlyAPIComponent
|
|
8
12
|
from .composio_api import ComposioAPIComponent
|
|
13
|
+
from .contentful_composio import ComposioContentfulAPIComponent
|
|
14
|
+
from .discord_composio import ComposioDiscordAPIComponent
|
|
15
|
+
from .figma_composio import ComposioFigmaAPIComponent
|
|
9
16
|
from .github_composio import ComposioGitHubAPIComponent
|
|
10
17
|
from .gmail_composio import ComposioGmailAPIComponent
|
|
11
18
|
from .googlecalendar_composio import ComposioGoogleCalendarAPIComponent
|
|
19
|
+
from .googledocs_composio import ComposioGoogleDocsAPIComponent
|
|
12
20
|
from .googlemeet_composio import ComposioGooglemeetAPIComponent
|
|
21
|
+
from .googlesheets_composio import ComposioGoogleSheetsAPIComponent
|
|
13
22
|
from .googletasks_composio import ComposioGoogleTasksAPIComponent
|
|
23
|
+
from .klaviyo_composio import ComposioKlaviyoAPIComponent
|
|
14
24
|
from .linear_composio import ComposioLinearAPIComponent
|
|
25
|
+
from .miro_composio import ComposioMiroAPIComponent
|
|
26
|
+
from .notion_composio import ComposioNotionAPIComponent
|
|
27
|
+
from .onedrive_composio import ComposioOneDriveAPIComponent
|
|
15
28
|
from .outlook_composio import ComposioOutlookAPIComponent
|
|
16
29
|
from .reddit_composio import ComposioRedditAPIComponent
|
|
17
30
|
from .slack_composio import ComposioSlackAPIComponent
|
|
18
31
|
from .slackbot_composio import ComposioSlackbotAPIComponent
|
|
19
32
|
from .supabase_composio import ComposioSupabaseAPIComponent
|
|
20
33
|
from .todoist_composio import ComposioTodoistAPIComponent
|
|
34
|
+
from .wrike_composio import ComposioWrikeAPIComponent
|
|
21
35
|
from .youtube_composio import ComposioYoutubeAPIComponent
|
|
22
36
|
|
|
23
37
|
_dynamic_imports = {
|
|
@@ -35,23 +49,51 @@ _dynamic_imports = {
|
|
|
35
49
|
"ComposioSupabaseAPIComponent": "supabase_composio",
|
|
36
50
|
"ComposioTodoistAPIComponent": "todoist_composio",
|
|
37
51
|
"ComposioYoutubeAPIComponent": "youtube_composio",
|
|
52
|
+
"ComposioGoogleDocsAPIComponent": "googledocs_composio",
|
|
53
|
+
"ComposioGoogleSheetsAPIComponent": "googlesheets_composio",
|
|
54
|
+
"ComposioKlaviyoAPIComponent": "klaviyo_composio",
|
|
55
|
+
"ComposioNotionAPIComponent": "notion_composio",
|
|
56
|
+
"ComposioOneDriveAPIComponent": "onedrive_composio",
|
|
57
|
+
"ComposioAirtableAPIComponent": "airtable_composio",
|
|
58
|
+
"ComposioAsanaAPIComponent": "asana_composio",
|
|
59
|
+
"ComposioAttioAPIComponent": "attio_composio",
|
|
60
|
+
"ComposioCalendlyAPIComponent": "calendly_composio",
|
|
61
|
+
"ComposioContentfulAPIComponent": "contentful_composio",
|
|
62
|
+
"ComposioDiscordAPIComponent": "discord_composio",
|
|
63
|
+
"ComposioFigmaAPIComponent": "figma_composio",
|
|
64
|
+
"ComposioMiroAPIComponent": "miro_composio",
|
|
65
|
+
"ComposioWrikeAPIComponent": "wrike_composio",
|
|
38
66
|
}
|
|
39
67
|
|
|
40
68
|
# Always expose all components - individual failures will be handled on import
|
|
41
69
|
__all__ = [
|
|
42
70
|
"ComposioAPIComponent",
|
|
71
|
+
"ComposioAirtableAPIComponent",
|
|
72
|
+
"ComposioAsanaAPIComponent",
|
|
73
|
+
"ComposioAttioAPIComponent",
|
|
74
|
+
"ComposioCalendlyAPIComponent",
|
|
75
|
+
"ComposioContentfulAPIComponent",
|
|
76
|
+
"ComposioDiscordAPIComponent",
|
|
77
|
+
"ComposioFigmaAPIComponent",
|
|
43
78
|
"ComposioGitHubAPIComponent",
|
|
44
79
|
"ComposioGmailAPIComponent",
|
|
45
80
|
"ComposioGoogleCalendarAPIComponent",
|
|
81
|
+
"ComposioGoogleDocsAPIComponent",
|
|
82
|
+
"ComposioGoogleSheetsAPIComponent",
|
|
46
83
|
"ComposioGoogleTasksAPIComponent",
|
|
47
84
|
"ComposioGooglemeetAPIComponent",
|
|
85
|
+
"ComposioKlaviyoAPIComponent",
|
|
48
86
|
"ComposioLinearAPIComponent",
|
|
87
|
+
"ComposioMiroAPIComponent",
|
|
88
|
+
"ComposioNotionAPIComponent",
|
|
89
|
+
"ComposioOneDriveAPIComponent",
|
|
49
90
|
"ComposioOutlookAPIComponent",
|
|
50
91
|
"ComposioRedditAPIComponent",
|
|
51
92
|
"ComposioSlackAPIComponent",
|
|
52
93
|
"ComposioSlackbotAPIComponent",
|
|
53
94
|
"ComposioSupabaseAPIComponent",
|
|
54
95
|
"ComposioTodoistAPIComponent",
|
|
96
|
+
"ComposioWrikeAPIComponent",
|
|
55
97
|
"ComposioYoutubeAPIComponent",
|
|
56
98
|
]
|
|
57
99
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioAirtableAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Airtable"
|
|
6
|
+
icon = "Airtable"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "airtable"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Airtable component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioAsanaAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Asana"
|
|
6
|
+
icon = "Asana"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "asana"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Asana component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioAttioAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Attio"
|
|
6
|
+
icon = "Attio"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "attio"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Attio component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioCalendlyAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Calendly"
|
|
6
|
+
icon = "Calendly"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "calendly"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Calendly component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioContentfulAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Contentful"
|
|
6
|
+
icon = "Contentful"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "contentful"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Contentful component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioDiscordAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Discord"
|
|
6
|
+
icon = "Discord"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "discord"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Discord component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioFigmaAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Figma"
|
|
6
|
+
icon = "Figma"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "figma"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Figma component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioGoogleDocsAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Google Docs"
|
|
6
|
+
icon = "Googledocs"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "googledocs"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Google Docs component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioGoogleSheetsAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Google Sheets"
|
|
6
|
+
icon = "Googlesheets"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "googlesheets"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Google Sheets component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioKlaviyoAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Klaviyo"
|
|
6
|
+
icon = "Klaviyo"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "klaviyo"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Klaviyo component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioMiroAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Miro"
|
|
6
|
+
icon = "Miro"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "miro"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Miro component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioNotionAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Notion"
|
|
6
|
+
icon = "Notion"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "notion"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Notion component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioOneDriveAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "OneDrive"
|
|
6
|
+
icon = "One_Drive"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "one_drive"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for OneDrive component."""
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from lfx.base.composio.composio_base import ComposioBaseComponent
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ComposioWrikeAPIComponent(ComposioBaseComponent):
|
|
5
|
+
display_name: str = "Wrike"
|
|
6
|
+
icon = "Wrike"
|
|
7
|
+
documentation: str = "https://docs.composio.dev"
|
|
8
|
+
app_name = "wrike"
|
|
9
|
+
|
|
10
|
+
def set_default_tools(self):
|
|
11
|
+
"""Set the default tools for Wrike component."""
|
|
@@ -15,7 +15,7 @@ class NvidiaSystemAssistComponent(ComponentWithCache):
|
|
|
15
15
|
"The user may query GPU specifications, state, and ask the NV-API to perform "
|
|
16
16
|
"several GPU-editing acations. The prompt must be human-readable language."
|
|
17
17
|
)
|
|
18
|
-
documentation = "https://docs.langflow.org/
|
|
18
|
+
documentation = "https://docs.langflow.org/integrations-nvidia-g-assist"
|
|
19
19
|
icon = "NVIDIA"
|
|
20
20
|
rise_initialized = False
|
|
21
21
|
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import json
|
|
1
2
|
from typing import Any
|
|
2
3
|
|
|
3
4
|
from lfx.custom import Component
|
|
4
|
-
from lfx.io import HandleInput, Output, TabInput
|
|
5
|
+
from lfx.io import BoolInput, HandleInput, Output, TabInput
|
|
5
6
|
from lfx.schema import Data, DataFrame, Message
|
|
6
7
|
|
|
8
|
+
MIN_CSV_LINES = 2
|
|
9
|
+
|
|
7
10
|
|
|
8
11
|
def convert_to_message(v) -> Message:
|
|
9
12
|
"""Convert input to Message type.
|
|
@@ -17,11 +20,12 @@ def convert_to_message(v) -> Message:
|
|
|
17
20
|
return v if isinstance(v, Message) else v.to_message()
|
|
18
21
|
|
|
19
22
|
|
|
20
|
-
def convert_to_data(v: DataFrame | Data | Message | dict) -> Data:
|
|
23
|
+
def convert_to_data(v: DataFrame | Data | Message | dict, *, auto_parse: bool) -> Data:
|
|
21
24
|
"""Convert input to Data type.
|
|
22
25
|
|
|
23
26
|
Args:
|
|
24
27
|
v: Input to convert (Message, Data, DataFrame, or dict)
|
|
28
|
+
auto_parse: Enable automatic parsing of structured data (JSON/CSV)
|
|
25
29
|
|
|
26
30
|
Returns:
|
|
27
31
|
Data: Converted Data object
|
|
@@ -29,15 +33,18 @@ def convert_to_data(v: DataFrame | Data | Message | dict) -> Data:
|
|
|
29
33
|
if isinstance(v, dict):
|
|
30
34
|
return Data(v)
|
|
31
35
|
if isinstance(v, Message):
|
|
32
|
-
|
|
36
|
+
data = Data(data={"text": v.data["text"]})
|
|
37
|
+
return parse_structured_data(data) if auto_parse else data
|
|
38
|
+
|
|
33
39
|
return v if isinstance(v, Data) else v.to_data()
|
|
34
40
|
|
|
35
41
|
|
|
36
|
-
def convert_to_dataframe(v: DataFrame | Data | Message | dict) -> DataFrame:
|
|
42
|
+
def convert_to_dataframe(v: DataFrame | Data | Message | dict, *, auto_parse: bool) -> DataFrame:
|
|
37
43
|
"""Convert input to DataFrame type.
|
|
38
44
|
|
|
39
45
|
Args:
|
|
40
46
|
v: Input to convert (Message, Data, DataFrame, or dict)
|
|
47
|
+
auto_parse: Enable automatic parsing of structured data (JSON/CSV)
|
|
41
48
|
|
|
42
49
|
Returns:
|
|
43
50
|
DataFrame: Converted DataFrame object
|
|
@@ -52,10 +59,84 @@ def convert_to_dataframe(v: DataFrame | Data | Message | dict) -> DataFrame:
|
|
|
52
59
|
if isinstance(v, pd.DataFrame):
|
|
53
60
|
# Convert pandas DataFrame to our DataFrame by creating Data objects
|
|
54
61
|
return DataFrame(data=v)
|
|
62
|
+
|
|
63
|
+
if isinstance(v, Message):
|
|
64
|
+
data = Data(data={"text": v.data["text"]})
|
|
65
|
+
return parse_structured_data(data).to_dataframe() if auto_parse else data.to_dataframe()
|
|
55
66
|
# For other types, call to_dataframe method
|
|
56
67
|
return v.to_dataframe()
|
|
57
68
|
|
|
58
69
|
|
|
70
|
+
def parse_structured_data(data: Data) -> Data:
|
|
71
|
+
"""Parse structured data (JSON, CSV) from Data's text field.
|
|
72
|
+
|
|
73
|
+
Args:
|
|
74
|
+
data: Data object with text content to parse
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
Data: Modified Data object with parsed content or original if parsing fails
|
|
78
|
+
"""
|
|
79
|
+
raw_text = data.get_text() or ""
|
|
80
|
+
text = raw_text.lstrip("\ufeff").strip()
|
|
81
|
+
|
|
82
|
+
# Try JSON parsing first
|
|
83
|
+
parsed_json = _try_parse_json(text)
|
|
84
|
+
if parsed_json is not None:
|
|
85
|
+
return parsed_json
|
|
86
|
+
|
|
87
|
+
# Try CSV parsing
|
|
88
|
+
if _looks_like_csv(text):
|
|
89
|
+
try:
|
|
90
|
+
return _parse_csv_to_data(text)
|
|
91
|
+
except Exception: # noqa: BLE001
|
|
92
|
+
# Heuristic misfire or malformed CSV — keep original data
|
|
93
|
+
return data
|
|
94
|
+
|
|
95
|
+
# Return original data if no parsing succeeded
|
|
96
|
+
return data
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def _try_parse_json(text: str) -> Data | None:
|
|
100
|
+
"""Try to parse text as JSON and return Data object."""
|
|
101
|
+
try:
|
|
102
|
+
parsed = json.loads(text)
|
|
103
|
+
|
|
104
|
+
if isinstance(parsed, dict):
|
|
105
|
+
# Single JSON object
|
|
106
|
+
return Data(data=parsed)
|
|
107
|
+
if isinstance(parsed, list) and all(isinstance(item, dict) for item in parsed):
|
|
108
|
+
# Array of JSON objects - create Data with the list
|
|
109
|
+
return Data(data={"records": parsed})
|
|
110
|
+
|
|
111
|
+
except (json.JSONDecodeError, ValueError):
|
|
112
|
+
pass
|
|
113
|
+
|
|
114
|
+
return None
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
def _looks_like_csv(text: str) -> bool:
|
|
118
|
+
"""Simple heuristic to detect CSV content."""
|
|
119
|
+
lines = text.strip().split("\n")
|
|
120
|
+
if len(lines) < MIN_CSV_LINES:
|
|
121
|
+
return False
|
|
122
|
+
|
|
123
|
+
header_line = lines[0]
|
|
124
|
+
return "," in header_line and len(lines) > 1
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def _parse_csv_to_data(text: str) -> Data:
|
|
128
|
+
"""Parse CSV text and return Data object."""
|
|
129
|
+
from io import StringIO
|
|
130
|
+
|
|
131
|
+
import pandas as pd
|
|
132
|
+
|
|
133
|
+
# Parse CSV to DataFrame, then convert to list of dicts
|
|
134
|
+
parsed_df = pd.read_csv(StringIO(text))
|
|
135
|
+
records = parsed_df.to_dict(orient="records")
|
|
136
|
+
|
|
137
|
+
return Data(data={"records": records})
|
|
138
|
+
|
|
139
|
+
|
|
59
140
|
class TypeConverterComponent(Component):
|
|
60
141
|
display_name = "Type Convert"
|
|
61
142
|
description = "Convert between different types (Message, Data, DataFrame)"
|
|
@@ -70,6 +151,14 @@ class TypeConverterComponent(Component):
|
|
|
70
151
|
info="Accept Message, Data or DataFrame as input",
|
|
71
152
|
required=True,
|
|
72
153
|
),
|
|
154
|
+
BoolInput(
|
|
155
|
+
name="auto_parse",
|
|
156
|
+
display_name="Auto Parse",
|
|
157
|
+
info="Detect and convert JSON/CSV strings automatically.",
|
|
158
|
+
advanced=True,
|
|
159
|
+
value=False,
|
|
160
|
+
required=False,
|
|
161
|
+
),
|
|
73
162
|
TabInput(
|
|
74
163
|
name="output_type",
|
|
75
164
|
display_name="Output Type",
|
|
@@ -142,7 +231,7 @@ class TypeConverterComponent(Component):
|
|
|
142
231
|
if isinstance(input_value, str):
|
|
143
232
|
input_value = Message(text=input_value)
|
|
144
233
|
|
|
145
|
-
result = convert_to_data(input_value)
|
|
234
|
+
result = convert_to_data(input_value, auto_parse=self.auto_parse)
|
|
146
235
|
self.status = result
|
|
147
236
|
return result
|
|
148
237
|
|
|
@@ -154,6 +243,6 @@ class TypeConverterComponent(Component):
|
|
|
154
243
|
if isinstance(input_value, str):
|
|
155
244
|
input_value = Message(text=input_value)
|
|
156
245
|
|
|
157
|
-
result = convert_to_dataframe(input_value)
|
|
246
|
+
result = convert_to_dataframe(input_value, auto_parse=self.auto_parse)
|
|
158
247
|
self.status = result
|
|
159
248
|
return result
|
|
@@ -15,8 +15,8 @@ from lfx.schema.data import Data
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class ClickhouseVectorStoreComponent(LCVectorStoreComponent):
|
|
18
|
-
display_name = "
|
|
19
|
-
description = "
|
|
18
|
+
display_name = "ClickHouse"
|
|
19
|
+
description = "ClickHouse Vector Store with search capabilities"
|
|
20
20
|
name = "Clickhouse"
|
|
21
21
|
icon = "Clickhouse"
|
|
22
22
|
|
|
@@ -69,7 +69,7 @@ class ClickhouseVectorStoreComponent(LCVectorStoreComponent):
|
|
|
69
69
|
import clickhouse_connect
|
|
70
70
|
except ImportError as e:
|
|
71
71
|
msg = (
|
|
72
|
-
"Failed to import
|
|
72
|
+
"Failed to import ClickHouse dependencies. "
|
|
73
73
|
"Install it using `uv pip install langflow[clickhouse-connect] --pre`"
|
|
74
74
|
)
|
|
75
75
|
raise ImportError(msg) from e
|
|
@@ -1311,7 +1311,7 @@ class Component(CustomComponent):
|
|
|
1311
1311
|
def _get_fallback_input(self, **kwargs):
|
|
1312
1312
|
return Input(**kwargs)
|
|
1313
1313
|
|
|
1314
|
-
def to_toolkit(self) -> list[Tool]:
|
|
1314
|
+
async def to_toolkit(self) -> list[Tool]:
|
|
1315
1315
|
"""Convert component to a list of tools.
|
|
1316
1316
|
|
|
1317
1317
|
This is a template method that defines the skeleton of the toolkit creation
|
|
@@ -1325,7 +1325,7 @@ class Component(CustomComponent):
|
|
|
1325
1325
|
- tags: List of tags associated with the tool
|
|
1326
1326
|
"""
|
|
1327
1327
|
# Get tools from subclass implementation
|
|
1328
|
-
tools = self._get_tools()
|
|
1328
|
+
tools = await self._get_tools()
|
|
1329
1329
|
|
|
1330
1330
|
if hasattr(self, TOOLS_METADATA_INPUT_NAME):
|
|
1331
1331
|
tools = self._filter_tools_by_status(tools=tools, metadata=self.tools_metadata)
|
|
@@ -1334,7 +1334,7 @@ class Component(CustomComponent):
|
|
|
1334
1334
|
# If no metadata exists yet, filter based on enabled_tools
|
|
1335
1335
|
return self._filter_tools_by_status(tools=tools, metadata=None)
|
|
1336
1336
|
|
|
1337
|
-
def _get_tools(self) -> list[Tool]:
|
|
1337
|
+
async def _get_tools(self) -> list[Tool]:
|
|
1338
1338
|
"""Get the list of tools for this component.
|
|
1339
1339
|
|
|
1340
1340
|
This method can be overridden by subclasses to provide custom tool implementations.
|
|
@@ -1421,6 +1421,7 @@ class Component(CustomComponent):
|
|
|
1421
1421
|
tools = []
|
|
1422
1422
|
try:
|
|
1423
1423
|
# Handle both sync and async _get_tools methods
|
|
1424
|
+
# TODO: this check can be remomved ince get tools is async
|
|
1424
1425
|
if asyncio.iscoroutinefunction(self._get_tools):
|
|
1425
1426
|
tools = await self._get_tools()
|
|
1426
1427
|
else:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lfx-nightly
|
|
3
|
-
Version: 0.1.12.
|
|
3
|
+
Version: 0.1.12.dev12
|
|
4
4
|
Summary: Langflow Executor - A lightweight CLI tool for executing and serving Langflow AI flows
|
|
5
5
|
Author-email: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
|
|
6
6
|
Requires-Python: <3.14,>=3.10
|
|
@@ -7,7 +7,7 @@ lfx/type_extraction.py,sha256=eCZNl9nAQivKdaPv_9BK71N0JV9Rtr--veAht0dnQ4A,2921
|
|
|
7
7
|
lfx/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
lfx/base/constants.py,sha256=iY5A_Rbcvoa7j0noeSmOQemebTQDWju0j5bprVCTAnY,1212
|
|
9
9
|
lfx/base/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
lfx/base/agents/agent.py,sha256=
|
|
10
|
+
lfx/base/agents/agent.py,sha256=ZePHU8aGDP3_oVXDMFh2SHA44KlRtJU6irkV9cqBq5M,10968
|
|
11
11
|
lfx/base/agents/callback.py,sha256=mjlT9ukBMVrfjYrHsJowqpY4g9hVGBVBIYhncLWr3tQ,3692
|
|
12
12
|
lfx/base/agents/context.py,sha256=u0wboX1aRR22Ia8gY14WF12RjhE0Rxv9hPBiixT9DtQ,3916
|
|
13
13
|
lfx/base/agents/default_prompts.py,sha256=tUjfczwt4D5R1KozNOl1uSL2V2rSCZeUMS-cfV4Gwn0,955
|
|
@@ -22,7 +22,7 @@ lfx/base/astra_assistants/util.py,sha256=T_W44VFoOXBF3m-0eCSrHvzbKx1gdyBF9IAWKMX
|
|
|
22
22
|
lfx/base/chains/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
23
|
lfx/base/chains/model.py,sha256=QSYJBc0Ygpx2Ko273u1idL_gPK2xpvRQgJb4oTx8x8s,766
|
|
24
24
|
lfx/base/composio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
lfx/base/composio/composio_base.py,sha256=
|
|
25
|
+
lfx/base/composio/composio_base.py,sha256=mzNoTjiBbxVTquJPzLgcJPCA3DTtFME4Ql0Zz2ztuOI,113168
|
|
26
26
|
lfx/base/compressors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
27
|
lfx/base/compressors/model.py,sha256=-FFBAPAy9bAgvklIo7x_uwShZR5NoMHakF6f_hNnLHg,2098
|
|
28
28
|
lfx/base/curl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -108,7 +108,7 @@ lfx/components/Notion/update_page_property.py,sha256=tgmPMbD1eX58dQQNXv1w5FzDec7
|
|
|
108
108
|
lfx/components/agentql/__init__.py,sha256=Erl669Dzsk-SegsDPWTtkKbprMXVuv8UTCo5REzZGTc,56
|
|
109
109
|
lfx/components/agentql/agentql_api.py,sha256=uIrIr7q0timgDwRCHt1DF_usbQTmctv3sIm-XXKF9k8,5561
|
|
110
110
|
lfx/components/agents/__init__.py,sha256=u1PH9Ui0dUgTdTZVP7cdVysCv4extdusKS_brcbE7Eg,1049
|
|
111
|
-
lfx/components/agents/agent.py,sha256=
|
|
111
|
+
lfx/components/agents/agent.py,sha256=Ut2oIFPAMPq9eMCmo4Qc9Xdh8zmCG5yQNWAb6X39BYk,25434
|
|
112
112
|
lfx/components/agents/mcp_component.py,sha256=pfnQAVIQnvc39V6aBZC3sz-Or4YnnpYOTpV5eWCc1As,22826
|
|
113
113
|
lfx/components/aiml/__init__.py,sha256=DNKB-HMFGFYmsdkON-s8557ttgBXVXADmS-BcuSQiIQ,1087
|
|
114
114
|
lfx/components/aiml/aiml.py,sha256=qYx-nYYlInB9Lk1mGJF1m1AAYFeDmK8QC-Gg6hKCqMY,3840
|
|
@@ -148,28 +148,42 @@ lfx/components/cleanlab/cleanlab_evaluator.py,sha256=BpY8gE_-HnhrnfqHFOmA-zup7NA
|
|
|
148
148
|
lfx/components/cleanlab/cleanlab_rag_evaluator.py,sha256=9ItX_3yj_0gZuX3_vVVRXj2qd8N7Jtr7P0ZBXPk0imk,9834
|
|
149
149
|
lfx/components/cleanlab/cleanlab_remediator.py,sha256=pbGdM4mRx8v3qMHX6-3CZ_lAbPw6TVUGbrGbRTkfUxU,5877
|
|
150
150
|
lfx/components/clickhouse/__init__.py,sha256=wv5NE-8x0eFDIJDjMfNq7xXURXQN8EwT0Rbpz4rXvZc,965
|
|
151
|
-
lfx/components/clickhouse/clickhouse.py,sha256=
|
|
151
|
+
lfx/components/clickhouse/clickhouse.py,sha256=kQnoE9ycFPWDE0rNLxaTyjxq5b3aCeaf-f5H_Lx7iBs,5035
|
|
152
152
|
lfx/components/cloudflare/__init__.py,sha256=hNoGPWCBAXbN5pjfMqexHGRpZlK0ldDZoHpejDnIpu8,1007
|
|
153
153
|
lfx/components/cloudflare/cloudflare.py,sha256=HqbkhXwUYacol8GkHchZD1bM7tDNHuuPGnHF7M8X454,2994
|
|
154
154
|
lfx/components/cohere/__init__.py,sha256=MSTeplsNIXTVm_dUcJETy6YGb-fw7-dplC9jzAodPpo,1198
|
|
155
155
|
lfx/components/cohere/cohere_embeddings.py,sha256=nA9BOixk534yJZymJaukBrQYBj_uB2nyYvzJPd_3aUc,3083
|
|
156
|
-
lfx/components/cohere/cohere_models.py,sha256=
|
|
156
|
+
lfx/components/cohere/cohere_models.py,sha256=WUhS4dcG8FBcJm2dCfhiDuaxZX8S1lICMI_Mmd6kflo,1563
|
|
157
157
|
lfx/components/cohere/cohere_rerank.py,sha256=qUoNEe6sjUnvkTHkCzwayBuLDoH957BBEgb-Qu_k9Yk,1554
|
|
158
|
-
lfx/components/composio/__init__.py,sha256=
|
|
158
|
+
lfx/components/composio/__init__.py,sha256=DVYKV9JyGTAWYDpAV7TeEKp_efltoOiyblQmL-qq4Ok,5175
|
|
159
|
+
lfx/components/composio/airtable_composio.py,sha256=5HrQEcM8bW7xv4AE5NIWyBzfgopxf9SIIpdcQHuy978,357
|
|
160
|
+
lfx/components/composio/asana_composio.py,sha256=KQ1tYdBJKOhtOqI11r8x2HxA0X21F7YaU-KEs3BOqAE,342
|
|
161
|
+
lfx/components/composio/attio_composio.py,sha256=3kOzz1Zx4_sXEqGY26l3r0nYK6c-RxCYchUwBGZ_vG0,342
|
|
162
|
+
lfx/components/composio/calendly_composio.py,sha256=SiguQT1VKiQ1F_sJs0ZGtNR6qoRYVCtpGbwYelmwU2A,357
|
|
159
163
|
lfx/components/composio/composio_api.py,sha256=xBzxP4T_mPToP5teroP2C4vDiJiyK-tzclDKHxdPRHM,10667
|
|
164
|
+
lfx/components/composio/contentful_composio.py,sha256=Nr77Hsj8R-B_QALVY4aabas4bEjD_xfVdsVdh9_bGu4,367
|
|
165
|
+
lfx/components/composio/discord_composio.py,sha256=3X4b7Wun7N4yt7KV6Hd120t_keNXm3cIMRWajeHSfsM,352
|
|
160
166
|
lfx/components/composio/dropbox_compnent.py,sha256=0FglWZ3vZYQFNo8OJcIMoIE8HQi3N5w2JY8FBhrS4sg,352
|
|
167
|
+
lfx/components/composio/figma_composio.py,sha256=dEPSE1RrJMFuW63R9KPc3HKi3v-ztfHUDHspgagvE-w,342
|
|
161
168
|
lfx/components/composio/github_composio.py,sha256=-KutXeX95w3uUyBufvVmLMYuwHhSPxswLMpI6YrUgWs,347
|
|
162
169
|
lfx/components/composio/gmail_composio.py,sha256=VQiEIi3hWIj4tWzFD2yARqhn2uCifp_rdsJzCjSIyKg,1342
|
|
163
170
|
lfx/components/composio/googlecalendar_composio.py,sha256=hyMyC2yblNCQb8sxa2t2tnke_zE5Uq1OkEAvd_kfIE4,389
|
|
171
|
+
lfx/components/composio/googledocs_composio.py,sha256=_EIPZqeAPWD5ptTb3h9-Yxaajr_zQo26ZSBzpwBwVyo,369
|
|
164
172
|
lfx/components/composio/googlemeet_composio.py,sha256=xU25iiHRMW0rcCNq0fxmuiEQN7mv1K7NnRqgTg7SBCI,373
|
|
173
|
+
lfx/components/composio/googlesheets_composio.py,sha256=o-84aBcIgQd7md5WdUwRV8tF3QBzTms3Idko2ybgAMA,379
|
|
165
174
|
lfx/components/composio/googletasks_composio.py,sha256=3bmyDAX8OwB6KryAiAitue6rHdeZBoDfJ6q6rzuwOcs,276
|
|
175
|
+
lfx/components/composio/klaviyo_composio.py,sha256=O-fopeP-_RoTdZLHlRlcS5S5jTb3JkT7nE-BIYqIISk,352
|
|
166
176
|
lfx/components/composio/linear_composio.py,sha256=visuu-6nQizgbEM2C6GwvHXYY59_mfGx-rhS4QvQjIA,347
|
|
177
|
+
lfx/components/composio/miro_composio.py,sha256=HpxCHhrEGXD8pCPzI9BX3pomIw2tysDCCmzRo_y9i48,337
|
|
178
|
+
lfx/components/composio/notion_composio.py,sha256=WQqm_zDRxMtiqomYuzH0Q4hM2ceNJHiHJVr6l-aviKY,347
|
|
179
|
+
lfx/components/composio/onedrive_composio.py,sha256=SXzEYlEhyHNxPu_1_GuQF0FykO5twCpkDy-G3hHlcOQ,359
|
|
167
180
|
lfx/components/composio/outlook_composio.py,sha256=v2mY1gtjUYsTDBD2TdKAUo8E-Y_2YT4ZOBLrv2qrkww,350
|
|
168
181
|
lfx/components/composio/reddit_composio.py,sha256=qGeUBzwiUlk_ojDhuMfXpK2pPUXdLPLOA9LXq8W-zE4,347
|
|
169
182
|
lfx/components/composio/slack_composio.py,sha256=21re5KgNjtKTqHLJ9Bc7Y87lr5UAHejgCFY2UkBNnck,27453
|
|
170
183
|
lfx/components/composio/slackbot_composio.py,sha256=sTL6VbzuW-Y0rbLEP8O6ypAWoT7pNUC35JhnvP5f4mQ,354
|
|
171
184
|
lfx/components/composio/supabase_composio.py,sha256=etWM40zAwrCmLQrQeN-Pa4i9YU8hr7VIf0BhYKNH1Cg,357
|
|
172
185
|
lfx/components/composio/todoist_composio.py,sha256=TdmFLyBYBxTa88Hq18ZaFmS1_UjPXp2I-lRvEJcbEyI,352
|
|
186
|
+
lfx/components/composio/wrike_composio.py,sha256=pfLPAMoI39rY8aFtFpnSyK29vZZvdXn3Tp50HyIXncs,342
|
|
173
187
|
lfx/components/composio/youtube_composio.py,sha256=EaW3f8Cthza9IkHebwjld5u2Vvwa3SyoStplCDVWy00,352
|
|
174
188
|
lfx/components/confluence/__init__.py,sha256=nKM7IdrQWMVnw3vF532SNEvG5vkre9B5NXXtkjICfLo,79
|
|
175
189
|
lfx/components/confluence/confluence.py,sha256=wn2TNiVaUGHLC14o7keyrVJzgiLokKyDMhJaZz8-u9Q,3076
|
|
@@ -383,7 +397,7 @@ lfx/components/nvidia/nvidia.py,sha256=MpW5cgiUkWNYPSPR8mfJXbuajKb52J2p8Fzjc0HNl
|
|
|
383
397
|
lfx/components/nvidia/nvidia_embedding.py,sha256=D97QOAgtZEzwHvBmDDShTmZhDAyN2SRbfb71515ib-g,2658
|
|
384
398
|
lfx/components/nvidia/nvidia_ingest.py,sha256=_wxmYNmRQ2kBfAxaXLykBIlKFXVGXEsTY22spVeoCCI,12065
|
|
385
399
|
lfx/components/nvidia/nvidia_rerank.py,sha256=zzl2skHxf2oXINDZBmG8-GbkTkc6EWtyMjyV8pVRAm4,2293
|
|
386
|
-
lfx/components/nvidia/system_assist.py,sha256=
|
|
400
|
+
lfx/components/nvidia/system_assist.py,sha256=G8cgsLQxRBBnUt49_Uzxt7cdTNplVAzUlDDwoqe57u0,2473
|
|
387
401
|
lfx/components/olivya/__init__.py,sha256=ilZR88huL3vnQHO27g4jsUkyIYSgN7RPOq8Corbi6xA,67
|
|
388
402
|
lfx/components/olivya/olivya.py,sha256=2A5QizyHByoIJLMM9RlyU64gYlqy0qtkw78S2RJU8NA,4185
|
|
389
403
|
lfx/components/ollama/__init__.py,sha256=fau8QcWs_eHO2MmtQ4coiKj9CzFA9X4hqFf541ekgXk,1068
|
|
@@ -405,7 +419,7 @@ lfx/components/processing/__init__.py,sha256=3h2cXRaJ1o7l3OQ9u2jH6HQmVDy_6wMBVy4
|
|
|
405
419
|
lfx/components/processing/alter_metadata.py,sha256=KB2Wy5yE8v3z2Q8YSR_AcryOEd6cIOkayFvo490P2Nc,3783
|
|
406
420
|
lfx/components/processing/batch_run.py,sha256=KZtEaQMuSEUsQ5qwiU-dJPMAqNE5LA83HoLk-Y646hg,7861
|
|
407
421
|
lfx/components/processing/combine_text.py,sha256=Zwh0F0v8vaTzmNK0T2D1c5LaixUKVINRZE8ulPjumKg,1242
|
|
408
|
-
lfx/components/processing/converter.py,sha256=
|
|
422
|
+
lfx/components/processing/converter.py,sha256=qsI7gHGCcUXqZZLjjx7meY0XvwCnttXCbG6labTFiZg,7912
|
|
409
423
|
lfx/components/processing/create_data.py,sha256=PdoGU7hmDnLAtBxTTZQH72_B3mOdl8GDGcGgzrzsEkg,4422
|
|
410
424
|
lfx/components/processing/data_operations.py,sha256=9dloD4ZEvwlpQwpV2Tig6sGwWTOxWXb9gMX6RO_hiL0,21515
|
|
411
425
|
lfx/components/processing/data_to_dataframe.py,sha256=5RT98DzwOHEzX0VHr1376sDiSw0GVpdLmF4zYT4XuVU,2323
|
|
@@ -488,7 +502,7 @@ lfx/components/vectorstores/astradb_graph.py,sha256=qvh49NH5zTkAlA46HZOy7c-vucpj
|
|
|
488
502
|
lfx/components/vectorstores/cassandra.py,sha256=gz8nfaq3ta6h_zVkHVn8uRKtcs9vDRuE7d1p5vI7LhE,9540
|
|
489
503
|
lfx/components/vectorstores/cassandra_graph.py,sha256=JsY_gHRexI2p3U6uiQuygC7upu_HljquasDMId6PG6Y,8305
|
|
490
504
|
lfx/components/vectorstores/chroma.py,sha256=DxvHJqhqx6CYdPoAG5Ly6jJsEOMR2R4lXv4UlvGQmQc,6171
|
|
491
|
-
lfx/components/vectorstores/clickhouse.py,sha256=
|
|
505
|
+
lfx/components/vectorstores/clickhouse.py,sha256=kQnoE9ycFPWDE0rNLxaTyjxq5b3aCeaf-f5H_Lx7iBs,5035
|
|
492
506
|
lfx/components/vectorstores/couchbase.py,sha256=cO1HWm9IisWWVcxKjr7TuoOfqnY2Ndnq_QPP3L2yAoc,3965
|
|
493
507
|
lfx/components/vectorstores/elasticsearch.py,sha256=WcBi8THcOzopZeYOQeEoHxsZkACHk4R3MKhSEYGxnfY,9773
|
|
494
508
|
lfx/components/vectorstores/faiss.py,sha256=K9egZNckeHOrPqxuFia4VL4-mFphyEl6dQ_F-lXvax8,3893
|
|
@@ -542,7 +556,7 @@ lfx/custom/code_parser/__init__.py,sha256=qIwZQdEp1z7ldn0z-GY44wmwRaywN3L6VPoPt6
|
|
|
542
556
|
lfx/custom/code_parser/code_parser.py,sha256=QAqsp4QF607319dClK60BsaiwZLV55n0xeGR-DthSoE,14280
|
|
543
557
|
lfx/custom/custom_component/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
544
558
|
lfx/custom/custom_component/base_component.py,sha256=Pxi-qCocrGIwcG0x5fu-7ty1Py71bl_KG9Fku5SeO_M,4053
|
|
545
|
-
lfx/custom/custom_component/component.py,sha256=
|
|
559
|
+
lfx/custom/custom_component/component.py,sha256=dhsRmVp5i8Q6NUZ2Ac5FReP68OhW8mbYn7MzQlJdxWI,74349
|
|
546
560
|
lfx/custom/custom_component/component_with_cache.py,sha256=por6CiPL3EHdLp_DvfI7qz1n4tc1KkqMOJNbsxoqVaI,313
|
|
547
561
|
lfx/custom/custom_component/custom_component.py,sha256=u330P-UbRXKeO-ughl2rCyvEbgdq-igTNFYEoKQLJzI,22306
|
|
548
562
|
lfx/custom/directory_reader/__init__.py,sha256=eFjlhKjpt2Kha_sJ2EqWofLRbpvfOTjvDSCpdpaTqWk,77
|
|
@@ -694,7 +708,7 @@ lfx/utils/schemas.py,sha256=NbOtVQBrn4d0BAu-0H_eCTZI2CXkKZlRY37XCSmuJwc,3865
|
|
|
694
708
|
lfx/utils/util.py,sha256=xGR32XDRr_TtruhjnXfI7lEWmk-vgywHAy3kz5SBowc,15725
|
|
695
709
|
lfx/utils/util_strings.py,sha256=nU_IcdphNaj6bAPbjeL-c1cInQPfTBit8mp5Y57lwQk,1686
|
|
696
710
|
lfx/utils/version.py,sha256=cHpbO0OJD2JQAvVaTH_6ibYeFbHJV0QDHs_YXXZ-bT8,671
|
|
697
|
-
lfx_nightly-0.1.12.
|
|
698
|
-
lfx_nightly-0.1.12.
|
|
699
|
-
lfx_nightly-0.1.12.
|
|
700
|
-
lfx_nightly-0.1.12.
|
|
711
|
+
lfx_nightly-0.1.12.dev12.dist-info/METADATA,sha256=kOUtFVWmgxO487sp0ZXsC1vuli0LMgaLD2obh8NA3do,8068
|
|
712
|
+
lfx_nightly-0.1.12.dev12.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
713
|
+
lfx_nightly-0.1.12.dev12.dist-info/entry_points.txt,sha256=1724p3RHDQRT2CKx_QRzEIa7sFuSVO0Ux70YfXfoMT4,42
|
|
714
|
+
lfx_nightly-0.1.12.dev12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|