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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kailash
3
- Version: 0.1.3
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-746%20passing-brightgreen.svg" alt="Tests: 746 passing">
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 CSVReader
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 = CSVReader(file_path="customers.csv")
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, CSVWriter
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 = CSVWriter(file_path="sharepoint_output.csv")
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 EmbeddingGenerator
214
- from kailash.nodes.ai.llm_agent import LLMAgent
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 = EmbeddingGenerator(
236
+ chunk_embedder = EmbeddingGeneratorNode(
236
237
  provider="ollama", model="nomic-embed-text", operation="embed_batch"
237
238
  )
238
- query_embedder = EmbeddingGenerator(
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 = LLMAgent(provider="ollama", model="llama3.2", temperature=0.7)
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
- - `CSVReader` - Read CSV files
360
- - `JSONReader` - Read JSON files
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
- - `CSVWriter` - Write CSV files
366
- - `JSONWriter` - Write JSON files
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
- - `Switch` - Conditional routing
383
- - `Merge` - Combine multiple inputs
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
- - `LLMAgent` - Multi-provider LLM with memory & tools
393
- - `EmbeddingGenerator` - Vector embeddings with caching
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 Switch
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 Switch node
440
- switch = 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 = EmbeddingGenerator(
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 = EmbeddingGenerator(
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 = LLMAgent(
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 LLMAgent, EmbeddingGenerator
977
+ from kailash.nodes.ai import LLMAgentNode, EmbeddingGeneratorNode
903
978
 
904
979
  # Multi-provider LLM support
905
- agent = LLMAgent()
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 = EmbeddingGenerator()
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=3OInzbi7yQygfZ_tWqNpEn8l_9WAcYPzjSv-pJdPYiI,902
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=31xQsDXlmv4DconFgfbQxRP7Uy0owCHU1spOaJOlH9c,216
6
- kailash/api/workflow_api.py,sha256=Cowe5RtnbF63XduED6xaKoynqWIMOXsgYtOsL-v6l6s,12690
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=G6MPMDBIRbvlAUt8m9-vryZknZekLkywmSvLCPP7N0s,37530
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=Thbrldm9X5Y9vy070D54P0BwwRsVzYt8R8VAyaS5XnE,1151
13
- kailash/nodes/ai/agents.py,sha256=rLQsXkxGJBS7vKTaURyDMI10KNef7u6fxAIqfxoBpEE,15252
14
- kailash/nodes/ai/ai_providers.py,sha256=t5fPF9O6u5oeJsYIjPUfZdkmtm7IVusUYTUz85Feyto,44373
15
- kailash/nodes/ai/embedding_generator.py,sha256=sOmitJmmmO8AGl4Rp1IoBpiyutkCmkTUOyG1L4VRoN8,31664
16
- kailash/nodes/ai/llm_agent.py,sha256=didvf3JJR1ade0OIbVwRCfYe9KD0CJmyRgV1Tm1PO1A,46094
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=yFQ79iO06S-XgKUwo20tQBV5B3GBpkYG2FDLrOY-cps,34741
26
- kailash/nodes/data/__init__.py,sha256=KtBsyRe8QDGOFZpXaXiU5hgs1F7d8xjPFYH3BcYn7oo,4051
27
- kailash/nodes/data/readers.py,sha256=wr6oKsMN1rLlBP0yLvFZPbdnyDEeqtIpi_ul_zggZg0,16358
28
- kailash/nodes/data/retrieval.py,sha256=obW50_sZxz62IkYy8gG942VrGlV_bVNy65R2xb8Sgwo,7512
29
- kailash/nodes/data/sharepoint_graph.py,sha256=zB0sxIzGpZt0o-TZ7DCZ1DBJOaHH86UEA7JG7t91al8,22357
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=cCJe27XwGynyJ2HiD1sbBVu9aSyMxWakIWFdVV8X8v0,12776
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=bWZ-c9PzluMgN1yZ3RyedRdgmmh7QtjO6izal6STCow,16823
35
- kailash/nodes/logic/__init__.py,sha256=tdxOol7fe2mSxlfoi50hif9ZUkrEg-jhS1-hy3FHzZ8,310
36
- kailash/nodes/logic/async_operations.py,sha256=nbqiFDo2u4suImIfwmUDx7QDMNps0Oam_t9zBfNvPZM,26231
37
- kailash/nodes/logic/operations.py,sha256=8rErs1bTLaonOCNr6uKkR-YKEkFecDND3jHXOHq2me8,21317
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=6OCIpjF26ypf9CrXk1nk6anjQOdLx2k3op8pYnUDBTU,20568
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=C34vQunKmKfSVRig1gjb5nrXgv_UW_Z5FbqAwFkz6LQ,3074
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=nM-poviCMates0IY4ogzF5wihaDAKJOSirGmhbLiryA,11802
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=2L-1n-zYjSPdNTTLM0qfURAeopAosByK9iMfQRgYmmY,31956
64
- kailash/utils/templates.py,sha256=VTDdU8Ebe6i0tKZuCFIWMQ8ayAW3jvwP1Tug0BIlOp8,21965
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.3.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
79
- kailash-0.1.3.dist-info/METADATA,sha256=_CTc92ySPkQltUrJoCeYr1e1xbUBMmcIJHuWhM84zRg,34863
80
- kailash-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
81
- kailash-0.1.3.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
82
- kailash-0.1.3.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
83
- kailash-0.1.3.dist-info/RECORD,,
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,,