kailash 0.1.3__py3-none-any.whl → 0.1.4__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.
- kailash/__init__.py +1 -1
- kailash/api/__init__.py +11 -1
- kailash/api/gateway.py +394 -0
- kailash/api/mcp_integration.py +478 -0
- kailash/api/workflow_api.py +29 -13
- kailash/nodes/ai/__init__.py +4 -4
- kailash/nodes/ai/agents.py +4 -4
- kailash/nodes/ai/ai_providers.py +18 -22
- kailash/nodes/ai/embedding_generator.py +34 -38
- kailash/nodes/ai/llm_agent.py +351 -356
- kailash/nodes/base.py +60 -64
- kailash/nodes/code/python.py +61 -42
- kailash/nodes/data/__init__.py +10 -10
- kailash/nodes/data/readers.py +27 -29
- kailash/nodes/data/retrieval.py +1 -1
- kailash/nodes/data/sharepoint_graph.py +23 -25
- kailash/nodes/data/sql.py +24 -26
- kailash/nodes/data/writers.py +41 -44
- kailash/nodes/logic/__init__.py +9 -3
- kailash/nodes/logic/async_operations.py +14 -14
- kailash/nodes/logic/operations.py +18 -22
- kailash/nodes/mcp/client.py +29 -33
- kailash/nodes/transform/formatters.py +1 -1
- kailash/tracking/metrics_collector.py +6 -7
- kailash/utils/export.py +2 -2
- kailash/utils/templates.py +16 -16
- {kailash-0.1.3.dist-info → kailash-0.1.4.dist-info}/METADATA +103 -28
- {kailash-0.1.3.dist-info → kailash-0.1.4.dist-info}/RECORD +32 -30
- {kailash-0.1.3.dist-info → kailash-0.1.4.dist-info}/WHEEL +0 -0
- {kailash-0.1.3.dist-info → kailash-0.1.4.dist-info}/entry_points.txt +0 -0
- {kailash-0.1.3.dist-info → kailash-0.1.4.dist-info}/licenses/LICENSE +0 -0
- {kailash-0.1.3.dist-info → kailash-0.1.4.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: kailash
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.4
|
4
4
|
Summary: Python SDK for the Kailash container-node architecture
|
5
5
|
Home-page: https://github.com/integrum/kailash-python-sdk
|
6
6
|
Author: Integrum
|
@@ -66,7 +66,7 @@ Dynamic: requires-python
|
|
66
66
|
<a href="https://pepy.tech/project/kailash"><img src="https://static.pepy.tech/badge/kailash" alt="Downloads"></a>
|
67
67
|
<img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License">
|
68
68
|
<img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code style: black">
|
69
|
-
<img src="https://img.shields.io/badge/tests-
|
69
|
+
<img src="https://img.shields.io/badge/tests-753%20passing-brightgreen.svg" alt="Tests: 753 passing">
|
70
70
|
<img src="https://img.shields.io/badge/coverage-100%25-brightgreen.svg" alt="Coverage: 100%">
|
71
71
|
</p>
|
72
72
|
|
@@ -91,6 +91,7 @@ Dynamic: requires-python
|
|
91
91
|
- 🤖 **AI-Powered**: Complete LLM agents, embeddings, and hierarchical RAG architecture
|
92
92
|
- 🧠 **Retrieval-Augmented Generation**: Full RAG pipeline with intelligent document processing
|
93
93
|
- 🌐 **REST API Wrapper**: Expose any workflow as a production-ready API in 3 lines
|
94
|
+
- 🚪 **Multi-Workflow Gateway**: Manage multiple workflows through unified API with MCP integration
|
94
95
|
|
95
96
|
## 🎯 Who Is This For?
|
96
97
|
|
@@ -124,7 +125,7 @@ uv sync
|
|
124
125
|
|
125
126
|
```python
|
126
127
|
from kailash.workflow import Workflow
|
127
|
-
from kailash.nodes.data import
|
128
|
+
from kailash.nodes.data import CSVReaderNode
|
128
129
|
from kailash.nodes.code import PythonCodeNode
|
129
130
|
from kailash.runtime.local import LocalRuntime
|
130
131
|
import pandas as pd
|
@@ -133,7 +134,7 @@ import pandas as pd
|
|
133
134
|
workflow = Workflow("customer_analysis", name="customer_analysis")
|
134
135
|
|
135
136
|
# Add data reader
|
136
|
-
reader =
|
137
|
+
reader = CSVReaderNode(file_path="customers.csv")
|
137
138
|
workflow.add_node("read_customers", reader)
|
138
139
|
|
139
140
|
# Add custom processing using Python code
|
@@ -171,7 +172,7 @@ workflow.save("customer_analysis.yaml", format="yaml")
|
|
171
172
|
|
172
173
|
```python
|
173
174
|
from kailash.workflow import Workflow
|
174
|
-
from kailash.nodes.data import SharePointGraphReader,
|
175
|
+
from kailash.nodes.data import SharePointGraphReader, CSVWriterNode
|
175
176
|
import os
|
176
177
|
|
177
178
|
# Create workflow for SharePoint file processing
|
@@ -182,7 +183,7 @@ sharepoint = SharePointGraphReader()
|
|
182
183
|
workflow.add_node("read_sharepoint", sharepoint)
|
183
184
|
|
184
185
|
# Process downloaded files
|
185
|
-
csv_writer =
|
186
|
+
csv_writer = CSVWriterNode(file_path="sharepoint_output.csv")
|
186
187
|
workflow.add_node("save_locally", csv_writer)
|
187
188
|
|
188
189
|
# Connect nodes
|
@@ -210,8 +211,8 @@ results, run_id = runtime.execute(workflow, inputs=inputs)
|
|
210
211
|
|
211
212
|
```python
|
212
213
|
from kailash.workflow import Workflow
|
213
|
-
from kailash.nodes.ai.embedding_generator import
|
214
|
-
from kailash.nodes.ai.llm_agent import
|
214
|
+
from kailash.nodes.ai.embedding_generator import EmbeddingGeneratorNode
|
215
|
+
from kailash.nodes.ai.llm_agent import LLMAgentNode
|
215
216
|
from kailash.nodes.data.sources import DocumentSourceNode, QuerySourceNode
|
216
217
|
from kailash.nodes.data.retrieval import RelevanceScorerNode
|
217
218
|
from kailash.nodes.transform.chunkers import HierarchicalChunkerNode
|
@@ -232,17 +233,17 @@ chunk_text_extractor = ChunkTextExtractorNode()
|
|
232
233
|
query_text_wrapper = QueryTextWrapperNode()
|
233
234
|
|
234
235
|
# AI processing with Ollama
|
235
|
-
chunk_embedder =
|
236
|
+
chunk_embedder = EmbeddingGeneratorNode(
|
236
237
|
provider="ollama", model="nomic-embed-text", operation="embed_batch"
|
237
238
|
)
|
238
|
-
query_embedder =
|
239
|
+
query_embedder = EmbeddingGeneratorNode(
|
239
240
|
provider="ollama", model="nomic-embed-text", operation="embed_batch"
|
240
241
|
)
|
241
242
|
|
242
243
|
# Retrieval and response generation
|
243
244
|
relevance_scorer = RelevanceScorerNode()
|
244
245
|
context_formatter = ContextFormatterNode()
|
245
|
-
llm_agent =
|
246
|
+
llm_agent = LLMAgentNode(provider="ollama", model="llama3.2", temperature=0.7)
|
246
247
|
|
247
248
|
# Add all nodes to workflow
|
248
249
|
for name, node in {
|
@@ -335,6 +336,80 @@ api.run(port=8000) # That's it! Your workflow is now a REST API
|
|
335
336
|
|
336
337
|
See the [API demo example](examples/integration_examples/integration_api_demo.py) for complete usage patterns.
|
337
338
|
|
339
|
+
### Multi-Workflow API Gateway - Manage Multiple Workflows
|
340
|
+
|
341
|
+
Run multiple workflows through a single unified API gateway with dynamic routing and MCP integration:
|
342
|
+
|
343
|
+
```python
|
344
|
+
from kailash.api.gateway import WorkflowAPIGateway
|
345
|
+
from kailash.api.mcp_integration import MCPIntegration
|
346
|
+
|
347
|
+
# Create gateway
|
348
|
+
gateway = WorkflowAPIGateway(
|
349
|
+
title="Enterprise Platform",
|
350
|
+
description="Unified API for all workflows"
|
351
|
+
)
|
352
|
+
|
353
|
+
# Register multiple workflows
|
354
|
+
gateway.register_workflow("sales", sales_workflow)
|
355
|
+
gateway.register_workflow("analytics", analytics_workflow)
|
356
|
+
gateway.register_workflow("reports", reporting_workflow)
|
357
|
+
|
358
|
+
# Add AI-powered tools via MCP
|
359
|
+
mcp = MCPIntegration("ai_tools")
|
360
|
+
mcp.add_tool("analyze", analyze_function)
|
361
|
+
mcp.add_tool("predict", predict_function)
|
362
|
+
gateway.register_mcp_server("ai", mcp)
|
363
|
+
|
364
|
+
# Run unified server
|
365
|
+
gateway.run(port=8000)
|
366
|
+
```
|
367
|
+
|
368
|
+
#### Gateway Features
|
369
|
+
|
370
|
+
- **Unified Access Point**: All workflows accessible through one server
|
371
|
+
- `/sales/execute` - Execute sales workflow
|
372
|
+
- `/analytics/execute` - Execute analytics workflow
|
373
|
+
- `/workflows` - List all available workflows
|
374
|
+
- `/health` - Check health of all services
|
375
|
+
|
376
|
+
- **MCP Integration**: AI-powered tools available to all workflows
|
377
|
+
```python
|
378
|
+
# Use MCP tools in workflows
|
379
|
+
from kailash.api.mcp_integration import MCPToolNode
|
380
|
+
|
381
|
+
tool_node = MCPToolNode(
|
382
|
+
mcp_server="ai_tools",
|
383
|
+
tool_name="analyze"
|
384
|
+
)
|
385
|
+
workflow.add_node("ai_analysis", tool_node)
|
386
|
+
```
|
387
|
+
|
388
|
+
- **Flexible Deployment Patterns**:
|
389
|
+
```python
|
390
|
+
# Pattern 1: Single Gateway (most cases)
|
391
|
+
gateway.register_workflow("workflow1", wf1)
|
392
|
+
gateway.register_workflow("workflow2", wf2)
|
393
|
+
|
394
|
+
# Pattern 2: Hybrid (heavy workflows separate)
|
395
|
+
gateway.register_workflow("light", light_wf)
|
396
|
+
gateway.proxy_workflow("heavy", "http://gpu-service:8080")
|
397
|
+
|
398
|
+
# Pattern 3: High Availability
|
399
|
+
# Run multiple gateway instances behind load balancer
|
400
|
+
|
401
|
+
# Pattern 4: Kubernetes
|
402
|
+
# Deploy with horizontal pod autoscaling
|
403
|
+
```
|
404
|
+
|
405
|
+
- **Production Features**:
|
406
|
+
- WebSocket support for real-time updates
|
407
|
+
- Health monitoring across all workflows
|
408
|
+
- Dynamic workflow registration/unregistration
|
409
|
+
- Built-in CORS and authentication support
|
410
|
+
|
411
|
+
See the [Gateway examples](examples/integration_examples/gateway_comprehensive_demo.py) for complete implementation patterns.
|
412
|
+
|
338
413
|
## 📚 Documentation
|
339
414
|
|
340
415
|
| Resource | Description |
|
@@ -356,14 +431,14 @@ The SDK includes a rich set of pre-built nodes for common operations:
|
|
356
431
|
<td width="50%">
|
357
432
|
|
358
433
|
**Data Operations**
|
359
|
-
- `
|
360
|
-
- `
|
434
|
+
- `CSVReaderNode` - Read CSV files
|
435
|
+
- `JSONReaderNode` - Read JSON files
|
361
436
|
- `DocumentSourceNode` - Sample document provider
|
362
437
|
- `QuerySourceNode` - Sample query provider
|
363
438
|
- `RelevanceScorerNode` - Multi-method similarity
|
364
439
|
- `SQLDatabaseNode` - Query databases
|
365
|
-
- `
|
366
|
-
- `
|
440
|
+
- `CSVWriterNode` - Write CSV files
|
441
|
+
- `JSONWriterNode` - Write JSON files
|
367
442
|
|
368
443
|
</td>
|
369
444
|
<td width="50%">
|
@@ -379,8 +454,8 @@ The SDK includes a rich set of pre-built nodes for common operations:
|
|
379
454
|
- `Aggregator` - Aggregate data
|
380
455
|
|
381
456
|
**Logic Nodes**
|
382
|
-
- `
|
383
|
-
- `
|
457
|
+
- `SwitchNode` - Conditional routing
|
458
|
+
- `MergeNode` - Combine multiple inputs
|
384
459
|
- `WorkflowNode` - Wrap workflows as reusable nodes
|
385
460
|
|
386
461
|
</td>
|
@@ -389,8 +464,8 @@ The SDK includes a rich set of pre-built nodes for common operations:
|
|
389
464
|
<td width="50%">
|
390
465
|
|
391
466
|
**AI/ML Nodes**
|
392
|
-
- `
|
393
|
-
- `
|
467
|
+
- `LLMAgentNode` - Multi-provider LLM with memory & tools
|
468
|
+
- `EmbeddingGeneratorNode` - Vector embeddings with caching
|
394
469
|
- `MCPClient/MCPServer` - Model Context Protocol
|
395
470
|
- `TextClassifier` - Text classification
|
396
471
|
- `SentimentAnalyzer` - Sentiment analysis
|
@@ -430,14 +505,14 @@ The SDK includes a rich set of pre-built nodes for common operations:
|
|
430
505
|
#### Workflow Management
|
431
506
|
```python
|
432
507
|
from kailash.workflow import Workflow
|
433
|
-
from kailash.nodes.logic import
|
508
|
+
from kailash.nodes.logic import SwitchNode
|
434
509
|
from kailash.nodes.transform import DataTransformer
|
435
510
|
|
436
511
|
# Create complex workflows with branching logic
|
437
512
|
workflow = Workflow("data_pipeline", name="data_pipeline")
|
438
513
|
|
439
|
-
# Add conditional branching with
|
440
|
-
switch =
|
514
|
+
# Add conditional branching with SwitchNode
|
515
|
+
switch = SwitchNode()
|
441
516
|
workflow.add_node("route", switch)
|
442
517
|
|
443
518
|
# Different paths based on validation
|
@@ -763,13 +838,13 @@ chunk_text_extractor = ChunkTextExtractorNode()
|
|
763
838
|
query_text_wrapper = QueryTextWrapperNode()
|
764
839
|
|
765
840
|
# Create embedding generators
|
766
|
-
chunk_embedder =
|
841
|
+
chunk_embedder = EmbeddingGeneratorNode(
|
767
842
|
provider="ollama",
|
768
843
|
model="nomic-embed-text",
|
769
844
|
operation="embed_batch"
|
770
845
|
)
|
771
846
|
|
772
|
-
query_embedder =
|
847
|
+
query_embedder = EmbeddingGeneratorNode(
|
773
848
|
provider="ollama",
|
774
849
|
model="nomic-embed-text",
|
775
850
|
operation="embed_batch"
|
@@ -780,7 +855,7 @@ relevance_scorer = RelevanceScorerNode(similarity_method="cosine")
|
|
780
855
|
context_formatter = ContextFormatterNode()
|
781
856
|
|
782
857
|
# Create LLM agent for final answer generation
|
783
|
-
llm_agent =
|
858
|
+
llm_agent = LLMAgentNode(
|
784
859
|
provider="ollama",
|
785
860
|
model="llama3.2",
|
786
861
|
temperature=0.7,
|
@@ -899,10 +974,10 @@ kailash/
|
|
899
974
|
The SDK features a unified provider architecture for AI capabilities:
|
900
975
|
|
901
976
|
```python
|
902
|
-
from kailash.nodes.ai import
|
977
|
+
from kailash.nodes.ai import LLMAgentNode, EmbeddingGeneratorNode
|
903
978
|
|
904
979
|
# Multi-provider LLM support
|
905
|
-
agent =
|
980
|
+
agent = LLMAgentNode()
|
906
981
|
result = agent.run(
|
907
982
|
provider="ollama", # or "openai", "anthropic", "mock"
|
908
983
|
model="llama3.1:8b-instruct-q8_0",
|
@@ -911,7 +986,7 @@ result = agent.run(
|
|
911
986
|
)
|
912
987
|
|
913
988
|
# Vector embeddings with the same providers
|
914
|
-
embedder =
|
989
|
+
embedder = EmbeddingGeneratorNode()
|
915
990
|
embedding = embedder.run(
|
916
991
|
provider="ollama", # Same providers support embeddings
|
917
992
|
model="snowflake-arctic-embed2",
|
@@ -1,19 +1,21 @@
|
|
1
|
-
kailash/__init__.py,sha256=
|
1
|
+
kailash/__init__.py,sha256=7XGjhqUBqULYrT7-nZ7UM9dd7SAOiZs7o-pUmxuHaaQ,902
|
2
2
|
kailash/__main__.py,sha256=vr7TVE5o16V6LsTmRFKG6RDKUXHpIWYdZ6Dok2HkHnI,198
|
3
3
|
kailash/manifest.py,sha256=8H4ObT3qvdV0FQDXYUF49ppbmOvnK1PmmpdC6h5npn8,24892
|
4
4
|
kailash/sdk_exceptions.py,sha256=l2AWF2BB7cLLPi95CRAxKWUQmD-cCBVgnbgztgn4H_s,6967
|
5
|
-
kailash/api/__init__.py,sha256=
|
6
|
-
kailash/api/
|
5
|
+
kailash/api/__init__.py,sha256=9Ofp4qTZCry_hovrtSjPjqyZbrccoPqyz9za_TfSHVg,445
|
6
|
+
kailash/api/gateway.py,sha256=rp0Doz7HaEgLFXRqZvzMk6EfK-M6HmMHcSAJSv28FL8,12576
|
7
|
+
kailash/api/mcp_integration.py,sha256=Pvm65Nb1g4-QGKqweeRE-hMJe0HvqhljHB-UTtItnVc,14541
|
8
|
+
kailash/api/workflow_api.py,sha256=8e4YSeeTQQT_9GJ_5-kWQFhL8v5-qqVWFv3ToREzBXE,13177
|
7
9
|
kailash/cli/__init__.py,sha256=kJaqsBp3fRmagJhqA6LMwMbEa_Vkz93hIPH3W5Mn5r0,97
|
8
10
|
kailash/cli/commands.py,sha256=K5slsaoYSw7ZpVgePvobN6K4w9_dXJugBTIY0aifKik,18236
|
9
11
|
kailash/nodes/__init__.py,sha256=dy36thqtYzTWkyLpmV93e7G0RXslzCtByLZvib4WYPM,564
|
10
|
-
kailash/nodes/base.py,sha256=
|
12
|
+
kailash/nodes/base.py,sha256=Q2gUtyFYQOtq9Y1blikLAm030Ccn-lWtIVp1Q8UNDhI,37823
|
11
13
|
kailash/nodes/base_async.py,sha256=7tHM14qSxbZxbqCZeI-Ac4WR-NwpBPOLX5QUfW2HlBQ,4867
|
12
|
-
kailash/nodes/ai/__init__.py,sha256=
|
13
|
-
kailash/nodes/ai/agents.py,sha256=
|
14
|
-
kailash/nodes/ai/ai_providers.py,sha256=
|
15
|
-
kailash/nodes/ai/embedding_generator.py,sha256=
|
16
|
-
kailash/nodes/ai/llm_agent.py,sha256=
|
14
|
+
kailash/nodes/ai/__init__.py,sha256=IzdC6n_02lSeCJlv-2mPVH0jPRf5GKHWtsK4ss6K5gI,1167
|
15
|
+
kailash/nodes/ai/agents.py,sha256=oThnANX7r1SgCkfDAbdiN4On55h4qYBirKlPR05PUOc,15268
|
16
|
+
kailash/nodes/ai/ai_providers.py,sha256=bPYUa7WGbGBufqqAQJ54QtdQTe-mNa4Ib-sVgwugHZg,44472
|
17
|
+
kailash/nodes/ai/embedding_generator.py,sha256=UZagRpoybTlV_LMCt0HMUuc1TYFh5yLfs38mqdLItEI,31846
|
18
|
+
kailash/nodes/ai/llm_agent.py,sha256=wRNAiwzxJGcvC0_O-dqeNy7aZ_gmzvac0DLjBqS3vC8,46607
|
17
19
|
kailash/nodes/ai/models.py,sha256=t90NvEIEJJxdBXwW0DhKACQG1Um-sJPm-lBdPBt8-ZA,16399
|
18
20
|
kailash/nodes/api/__init__.py,sha256=1yFcWVYyc-bsilknBT5aAGV7jcp-Ysu_afRilNJlD0A,1529
|
19
21
|
kailash/nodes/api/auth.py,sha256=cpHUIZ6-YFo3jkW0K4-eBP38EZCl7Lrfibg5XTZaPWo,19427
|
@@ -22,27 +24,27 @@ kailash/nodes/api/http.py,sha256=6uJBurI9Jhcu1AWeo_KTj0KuSVw5kmlXRemHyEVjZyI,351
|
|
22
24
|
kailash/nodes/api/rate_limiting.py,sha256=f-cY_ee5juWHyKT3FqtaTk-SjEgMWX2DxU10Y41DZG4,19728
|
23
25
|
kailash/nodes/api/rest.py,sha256=_Z7aoCIaG3l2wz8W3q8KxEzGpJTovfRXx8v0o4Llefk,39589
|
24
26
|
kailash/nodes/code/__init__.py,sha256=L3QBfnITPb6v-Wbq2ezNWt8xDlC4uGaTgrkqIJ9vGKU,1191
|
25
|
-
kailash/nodes/code/python.py,sha256=
|
26
|
-
kailash/nodes/data/__init__.py,sha256=
|
27
|
-
kailash/nodes/data/readers.py,sha256=
|
28
|
-
kailash/nodes/data/retrieval.py,sha256=
|
29
|
-
kailash/nodes/data/sharepoint_graph.py,sha256=
|
27
|
+
kailash/nodes/code/python.py,sha256=HD1a8sIR6yTTjlm6B7x_fzBOqUE8QU_ybBz1lMrEVpY,35536
|
28
|
+
kailash/nodes/data/__init__.py,sha256=dIPx7Dfk3ZQ_SZvU4qYhAtYMTDCj4DeeXOSqMMW92mI,4107
|
29
|
+
kailash/nodes/data/readers.py,sha256=U1-3QuIvm6LWZp7YZnLQGjoHQAPD24yqXrRInxp6Sq0,16462
|
30
|
+
kailash/nodes/data/retrieval.py,sha256=ANQXk0h5QI_NX_VdgABJEHbKWI3wtiRXCNgoap27M04,7516
|
31
|
+
kailash/nodes/data/sharepoint_graph.py,sha256=UIyy8Q-9bGTzj-hjcxne8DkBJvr6Eig1HgY1JqGZqss,22437
|
30
32
|
kailash/nodes/data/sources.py,sha256=MaXFPSDg4VN7TN5iNMZxwhxgj6nNpH43tQYmkxhHxjE,3638
|
31
|
-
kailash/nodes/data/sql.py,sha256=
|
33
|
+
kailash/nodes/data/sql.py,sha256=agu-ZCdHAJKsJI1GCnNrGv7a5WhudpPGYz650vuCUE0,12860
|
32
34
|
kailash/nodes/data/streaming.py,sha256=OAME3quVU9NbQFMBM6X-Yiri8Q5WGlEi91U4oGs78Fw,35223
|
33
35
|
kailash/nodes/data/vector_db.py,sha256=rywRU65g7ou9v1QPSZmC5esnqC-O0DezGOJS37wKdJs,30556
|
34
|
-
kailash/nodes/data/writers.py,sha256=
|
35
|
-
kailash/nodes/logic/__init__.py,sha256=
|
36
|
-
kailash/nodes/logic/async_operations.py,sha256=
|
37
|
-
kailash/nodes/logic/operations.py,sha256=
|
36
|
+
kailash/nodes/data/writers.py,sha256=5tv0Qf-Wjhsd03epDUafvlTTLd5Q1NeCYaR-hQfIeJU,16981
|
37
|
+
kailash/nodes/logic/__init__.py,sha256=kP24cdxLPdguL1a2GkTkP_bp_mU7MbhveeMLm5-Y8oA,365
|
38
|
+
kailash/nodes/logic/async_operations.py,sha256=AHjiogaiwYehKoWbtlTZoY_cAdbR4Lxl4kLGg0o1r-I,26247
|
39
|
+
kailash/nodes/logic/operations.py,sha256=A8u-wQpaFfAUAsG4_RP8BrUuLZEDrawCD7ywiTjRZ-Y,20958
|
38
40
|
kailash/nodes/logic/workflow.py,sha256=Gp-khyguNH7h0LFAO5QACiL_iLTZIhhgmdSc9fzbFwg,16704
|
39
41
|
kailash/nodes/mcp/__init__.py,sha256=Ea1vtdGpVRGTL4QrRGsrh9mhKIprXFWWBN68E9ljqps,225
|
40
|
-
kailash/nodes/mcp/client.py,sha256=
|
42
|
+
kailash/nodes/mcp/client.py,sha256=YVJlfjnY-DzyxY3AqcgtNcSH5RPAcTUuR703R_SEiTg,20674
|
41
43
|
kailash/nodes/mcp/resource.py,sha256=A5luATUYGNiO1ESXmaInpvuGrPwLOk6ioBw_tIhXB0M,24469
|
42
44
|
kailash/nodes/mcp/server.py,sha256=jZEIA6xqvsboeqQGT3tn-26pu8y9R46VQOKUmSpxQPk,20836
|
43
45
|
kailash/nodes/transform/__init__.py,sha256=cQhv6js_oal6_ZUcVjZuR-Y8ZC8tUHz47FRiGDHeFPA,529
|
44
46
|
kailash/nodes/transform/chunkers.py,sha256=qh2wYq6bdo5qGoDRLrowDrpl4VinRO4hDOj05DOr3RY,2580
|
45
|
-
kailash/nodes/transform/formatters.py,sha256=
|
47
|
+
kailash/nodes/transform/formatters.py,sha256=02T87cQ4nVJoUKV9spEBzKa1YxtbV_KurngbhnfkVao,3078
|
46
48
|
kailash/nodes/transform/processors.py,sha256=WKPYjJAJ5gWiE7OmgJhMvY8yyGrBLsMJGBudeW--omU,14434
|
47
49
|
kailash/runtime/__init__.py,sha256=jDdjbnUKyNnLx8Fc3fydaBERG2MuBN-NBvU_V2_4kmg,187
|
48
50
|
kailash/runtime/async_local.py,sha256=h8NrwgXOEX-pgozPS1_TPLCrWeSorf0AqridKX1yI2w,12264
|
@@ -53,15 +55,15 @@ kailash/runtime/runner.py,sha256=wzTiC8hHoy3dca5NRImaw2qfjH1bkUJR2UaFwCkTV6Y,324
|
|
53
55
|
kailash/runtime/testing.py,sha256=UJdLD7Eh45sa3oIWy6Pe0LA6yf9NcY_9r8YXWUwSuEQ,11578
|
54
56
|
kailash/tracking/__init__.py,sha256=nhyecV24JuB_D-veJ3qw7h4oO8Sbdmyb6RvPS6VQktU,305
|
55
57
|
kailash/tracking/manager.py,sha256=ERzs2qkFSsqZjNEbQhO1lXZm1aipjMeP1PmQIcwgSSE,27069
|
56
|
-
kailash/tracking/metrics_collector.py,sha256=
|
58
|
+
kailash/tracking/metrics_collector.py,sha256=8CvNK3lUIN7BfGy0Re-2WrNKM3J0vx8vjfd-uyvaJJs,11820
|
57
59
|
kailash/tracking/models.py,sha256=Yt0lgBwTx1ldAKdOh6wKaq6e9XIcGg6X1jUrHEVb8uw,18094
|
58
60
|
kailash/tracking/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
61
|
kailash/tracking/storage/base.py,sha256=bw4WWoG40G8zJCS0zVQ18-BiBYbt3fnZPx64xq0BY0c,2468
|
60
62
|
kailash/tracking/storage/database.py,sha256=3pHaohN_tuP3bfV2gCD8vOdqJSZhuKlGRjigWVme0FQ,20022
|
61
63
|
kailash/tracking/storage/filesystem.py,sha256=hOifk6bmJozKpMyRHfiPFJ62KOZcXoRwXnKgC9jvCMI,18745
|
62
64
|
kailash/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
63
|
-
kailash/utils/export.py,sha256=
|
64
|
-
kailash/utils/templates.py,sha256=
|
65
|
+
kailash/utils/export.py,sha256=LIahj_qIM0vaC5rFnV_iVGaL92jRp1WkYmi8pEgf6yE,31964
|
66
|
+
kailash/utils/templates.py,sha256=WBZMd8-HoGB47nhJTSwxEkJi9etfNppOTiwtlZe2DFI,22049
|
65
67
|
kailash/visualization/__init__.py,sha256=6bvgE_Rt8z3Rf4kSvdWvZNaTYvbofRHc_QbGlC0xDYE,1880
|
66
68
|
kailash/visualization/api.py,sha256=jKjfxuufSsXZEsEWIu6_FF7XHQsjjO2d5MJfO0F8S20,28890
|
67
69
|
kailash/visualization/dashboard.py,sha256=euAyqTu5QWwcUOhLBcdYrKnJdFVX_pQThlNLp-yYbaA,32874
|
@@ -75,9 +77,9 @@ kailash/workflow/mock_registry.py,sha256=oweiPQ-mBuDdzTUbo3qZAW6OaBKNqST_1vX32xM
|
|
75
77
|
kailash/workflow/runner.py,sha256=QATm4y7botMoOFltcHe8CreeUlobJX0M5nLHQ9usRgo,10839
|
76
78
|
kailash/workflow/state.py,sha256=3vZkptVfPYqN-Q9aFwO2sUpmy-l1h5vIMVwh67uTwE4,7722
|
77
79
|
kailash/workflow/visualization.py,sha256=gSMT-jaSzQBufV4mDArWVPJj5bpNIxTa_NE796Rm8I8,19536
|
78
|
-
kailash-0.1.
|
79
|
-
kailash-0.1.
|
80
|
-
kailash-0.1.
|
81
|
-
kailash-0.1.
|
82
|
-
kailash-0.1.
|
83
|
-
kailash-0.1.
|
80
|
+
kailash-0.1.4.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
|
81
|
+
kailash-0.1.4.dist-info/METADATA,sha256=4tL-7lac6fCtscYG2iYatqrRDdJlO7eRR7bYrI5bQvs,37351
|
82
|
+
kailash-0.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
83
|
+
kailash-0.1.4.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
|
84
|
+
kailash-0.1.4.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
|
85
|
+
kailash-0.1.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|