kailash 0.2.2__py3-none-any.whl → 0.3.0__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.
@@ -0,0 +1,428 @@
1
+ Metadata-Version: 2.4
2
+ Name: kailash
3
+ Version: 0.3.0
4
+ Summary: Python SDK for the Kailash container-node architecture
5
+ Home-page: https://github.com/integrum/kailash-python-sdk
6
+ Author: Integrum
7
+ Author-email: Integrum <info@integrum.com>
8
+ Project-URL: Homepage, https://github.com/integrum/kailash-python-sdk
9
+ Project-URL: Bug Tracker, https://github.com/integrum/kailash-python-sdk/issues
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Requires-Python: >=3.11
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: networkx>=2.7
19
+ Requires-Dist: pydantic>=1.9
20
+ Requires-Dist: matplotlib>=3.5
21
+ Requires-Dist: pyyaml>=6.0
22
+ Requires-Dist: click>=8.0
23
+ Requires-Dist: pytest>=8.3.5
24
+ Requires-Dist: mcp[cli]>=1.9.2
25
+ Requires-Dist: pandas>=2.2.3
26
+ Requires-Dist: numpy>=2.2.5
27
+ Requires-Dist: scipy>=1.15.3
28
+ Requires-Dist: scikit-learn>=1.6.1
29
+ Requires-Dist: requests>=2.32.3
30
+ Requires-Dist: pytest-cov>=6.1.1
31
+ Requires-Dist: isort>=6.0.1
32
+ Requires-Dist: aiohttp>=3.12.4
33
+ Requires-Dist: ruff>=0.11.12
34
+ Requires-Dist: msal>=1.32.3
35
+ Requires-Dist: sphinx>=8.2.3
36
+ Requires-Dist: sphinx-rtd-theme>=3.0.2
37
+ Requires-Dist: sphinx-copybutton>=0.5.2
38
+ Requires-Dist: sphinxcontrib-mermaid>=1.0.0
39
+ Requires-Dist: sphinx-autobuild>=2024.10.3
40
+ Requires-Dist: autodoc>=0.5.0
41
+ Requires-Dist: myst-parser>=4.0.1
42
+ Requires-Dist: black>=25.1.0
43
+ Requires-Dist: psutil>=7.0.0
44
+ Requires-Dist: fastapi>=0.115.12
45
+ Requires-Dist: uvicorn[standard]>=0.31.0
46
+ Requires-Dist: pytest-asyncio>=1.0.0
47
+ Requires-Dist: pre-commit>=4.2.0
48
+ Requires-Dist: twine>=6.1.0
49
+ Requires-Dist: ollama>=0.5.1
50
+ Requires-Dist: sqlalchemy>=2.0.0
51
+ Requires-Dist: psycopg2-binary>=2.9.0
52
+ Requires-Dist: pymysql>=1.1.0
53
+ Requires-Dist: aiosqlite>=0.19.0
54
+ Requires-Dist: websockets>=12.0
55
+ Requires-Dist: httpx>=0.25.0
56
+ Requires-Dist: python-jose>=3.5.0
57
+ Requires-Dist: pytest-xdist>=3.6.0
58
+ Requires-Dist: pytest-timeout>=2.3.0
59
+ Requires-Dist: pytest-split>=0.9.0
60
+ Provides-Extra: dev
61
+ Requires-Dist: pytest>=7.0; extra == "dev"
62
+ Requires-Dist: pytest-cov>=3.0; extra == "dev"
63
+ Requires-Dist: black>=22.0; extra == "dev"
64
+ Requires-Dist: isort>=5.10; extra == "dev"
65
+ Requires-Dist: mypy>=0.9; extra == "dev"
66
+ Dynamic: author
67
+ Dynamic: home-page
68
+ Dynamic: license-file
69
+ Dynamic: requires-python
70
+
71
+ # Kailash Python SDK
72
+
73
+ <p align="center">
74
+ <a href="https://pypi.org/project/kailash/"><img src="https://img.shields.io/pypi/v/kailash.svg" alt="PyPI version"></a>
75
+ <a href="https://pypi.org/project/kailash/"><img src="https://img.shields.io/pypi/pyversions/kailash.svg" alt="Python versions"></a>
76
+ <a href="https://pepy.tech/project/kailash"><img src="https://static.pepy.tech/badge/kailash" alt="Downloads"></a>
77
+ <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="MIT License">
78
+ <img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code style: black">
79
+ <img src="https://img.shields.io/badge/tests-751%20passing-brightgreen.svg" alt="Tests: 751 passing">
80
+ <img src="https://img.shields.io/badge/coverage-100%25-brightgreen.svg" alt="Coverage: 100%">
81
+ </p>
82
+
83
+ <p align="center">
84
+ <strong>A Pythonic SDK for the Kailash container-node architecture</strong>
85
+ </p>
86
+
87
+ <p align="center">
88
+ Build workflows that seamlessly integrate with Kailash's production environment while maintaining the flexibility to prototype quickly and iterate locally.
89
+ </p>
90
+
91
+ ---
92
+
93
+ ## ✨ Highlights
94
+
95
+ - 🚀 **Rapid Prototyping**: Create and test workflows locally without containerization
96
+ - 🏗️ **Architecture-Aligned**: Automatically ensures compliance with Kailash standards
97
+ - 🔄 **Seamless Handoff**: Export prototypes directly to production-ready formats
98
+ - 📊 **Real-time Monitoring**: Live dashboards with WebSocket streaming and performance metrics
99
+ - 🧩 **Extensible**: Easy to create custom nodes for domain-specific operations
100
+ - ⚡ **Fast Installation**: Uses `uv` for lightning-fast Python package management
101
+ - 🤖 **AI-Powered**: Complete LLM agents, embeddings, and hierarchical RAG architecture
102
+ - 🧠 **Retrieval-Augmented Generation**: Full RAG pipeline with intelligent document processing
103
+ - 🌐 **REST API Wrapper**: Expose any workflow as a production-ready API in 3 lines
104
+ - 🚪 **Multi-Workflow Gateway**: Manage multiple workflows through unified API with MCP integration
105
+ - 🤖 **Self-Organizing Agents**: Autonomous agent pools with intelligent team formation and convergence detection
106
+ - 🧠 **Agent-to-Agent Communication**: Shared memory pools and intelligent caching for coordinated multi-agent systems
107
+ - 🔒 **Production Security**: Comprehensive security framework with path traversal prevention, code sandboxing, and audit logging
108
+ - 🎨 **Visual Workflow Builder**: Kailash Workflow Studio - drag-and-drop interface for creating and managing workflows (coming soon)
109
+ - 🔁 **Cyclic Workflows (v0.2.0)**: Universal Hybrid Cyclic Graph Architecture with 30,000+ iterations/second performance
110
+ - 🛠️ **Developer Tools**: CycleAnalyzer, CycleDebugger, CycleProfiler for production-ready cyclic workflows
111
+ - 📈 **High Performance**: Optimized execution engine supporting 100,000+ iteration workflows
112
+ - 📁 **Enhanced Documentation (v0.2.2)**: Reorganized structure with production-ready workflow library
113
+
114
+ ## 🎯 Who Is This For?
115
+
116
+ The Kailash Python SDK is designed for:
117
+
118
+ - **AI Business Coaches (ABCs)** who need to prototype workflows quickly
119
+ - **Data Scientists** building ML pipelines compatible with production infrastructure
120
+ - **Engineers** who want to test Kailash workflows locally before deployment
121
+ - **Teams** looking to standardize their workflow development process
122
+
123
+ ## 🚀 Quick Start
124
+
125
+ ### Installation
126
+
127
+ **Requirements:** Python 3.11 or higher
128
+
129
+ ```bash
130
+ # Install uv if you haven't already
131
+ curl -LsSf https://astral.sh/uv/install.sh | sh
132
+
133
+ # For users: Install from PyPI
134
+ pip install kailash
135
+
136
+ # For developers: Clone and sync
137
+ git clone https://github.com/integrum/kailash-python-sdk.git
138
+ cd kailash-python-sdk
139
+ uv sync
140
+
141
+ # Set up SDK development infrastructure (optional but recommended)
142
+ ./scripts/setup-sdk-environment.sh
143
+ ```
144
+
145
+ ### Your First Workflow
146
+
147
+ ```python
148
+ from kailash.workflow import Workflow
149
+ from kailash.nodes.data import CSVReaderNode
150
+ from kailash.nodes.code import PythonCodeNode
151
+ from kailash.runtime.local import LocalRuntime
152
+ import pandas as pd
153
+
154
+ # Create a workflow
155
+ workflow = Workflow("customer_analysis", name="customer_analysis")
156
+
157
+ # Add data reader
158
+ reader = CSVReaderNode(file_path="customers.csv")
159
+ workflow.add_node("read_customers", reader)
160
+
161
+ # Add custom processing using Python code
162
+ def analyze_customers(data):
163
+ """Analyze customer data and compute metrics."""
164
+ df = pd.DataFrame(data)
165
+ # Convert total_spent to numeric
166
+ df['total_spent'] = pd.to_numeric(df['total_spent'])
167
+ return {
168
+ "result": {
169
+ "total_customers": len(df),
170
+ "avg_spend": df["total_spent"].mean(),
171
+ "top_customers": df.nlargest(10, "total_spent").to_dict("records")
172
+ }
173
+ }
174
+
175
+ processor = PythonCodeNode(code=analyze_customers)
176
+ workflow.add_node("analyze", processor)
177
+
178
+ # Connect nodes
179
+ workflow.connect("read_customers", "analyze", mapping={"data": "data"})
180
+
181
+ # Run locally
182
+ runtime = LocalRuntime()
183
+ results, run_id = runtime.execute(workflow, parameters={
184
+ "read_customers": {"file_path": "customers.csv"}
185
+ })
186
+
187
+ print(f"Total customers: {results['analyze']['result']['total_customers']}")
188
+ print(f"Average spend: ${results['analyze']['result']['avg_spend']:.2f}")
189
+ ```
190
+
191
+ ### Export to Production
192
+
193
+ ```python
194
+ # Export to Kailash container format
195
+ from kailash.utils.export import export_workflow
196
+
197
+ export_workflow(workflow, "customer_analysis.yaml")
198
+ ```
199
+
200
+ ## 📚 Documentation
201
+
202
+ ### For SDK Users
203
+
204
+ **Build solutions with the SDK:**
205
+ - `sdk-users/` - Everything you need to build with Kailash
206
+ - `developer/` - Node creation patterns and troubleshooting
207
+ - `workflows/` - Production-ready workflow library (NEW in v0.2.2)
208
+ - Quick-start patterns (30-second workflows)
209
+ - Industry-specific solutions (healthcare, finance)
210
+ - Enterprise integration patterns
211
+ - `essentials/` - Quick reference and cheatsheets
212
+ - `nodes/` - Comprehensive node catalog (66+ nodes)
213
+ - `patterns/` - Architectural patterns
214
+
215
+ ### For SDK Contributors
216
+
217
+ **Develop the SDK itself:**
218
+ - `sdk-contributors/` - Internal SDK development resources
219
+ - `architecture/` - ADRs and design decisions
220
+ - `project/` - TODOs and development tracking
221
+ - `training/` - LLM training examples
222
+
223
+ ### Shared Resources
224
+
225
+ - `shared/` - Resources for both users and contributors
226
+ - `mistakes/` - Common error patterns and solutions
227
+ - `frontend/` - UI development resources
228
+
229
+ ### Quick Links
230
+
231
+ - [SDK User Guide](sdk-users/README.md) - Build with the SDK
232
+ - [SDK Contributor Guide](sdk-contributors/README.md) - Develop the SDK
233
+ - [API Documentation](https://integrum.github.io/kailash-python-sdk)
234
+ - [Examples](examples/)
235
+ - [Release Notes](CHANGELOG.md)
236
+
237
+ ## 🔥 Advanced Features
238
+
239
+ ### Cyclic Workflows (Enhanced in v0.2.2)
240
+
241
+ Build iterative workflows with the new CycleBuilder API:
242
+
243
+ ```python
244
+ # Create an optimization cycle
245
+ workflow.create_cycle("optimization_loop")
246
+ .connect("processor", "processor")
247
+ .max_iterations(100)
248
+ .converge_when("quality >= 0.95")
249
+ .timeout(30)
250
+ .build()
251
+ ```
252
+
253
+ ### Self-Organizing Agent Pools
254
+
255
+ Create teams of AI agents that autonomously coordinate:
256
+
257
+ ```python
258
+ from kailash.nodes.ai import SelfOrganizingAgentPoolNode
259
+
260
+ agent_pool = SelfOrganizingAgentPoolNode(
261
+ formation_strategy="capability_matching",
262
+ convergence_strategy="quality_voting",
263
+ min_agents=3,
264
+ max_agents=10
265
+ )
266
+ workflow.add_node("agent_team", agent_pool)
267
+ ```
268
+
269
+ ### Hierarchical RAG Pipeline
270
+
271
+ Build sophisticated document processing systems:
272
+
273
+ ```python
274
+ from kailash.nodes.data import DocumentSourceNode, HierarchicalChunkerNode
275
+ from kailash.nodes.ai import EmbeddingGeneratorNode
276
+
277
+ # Build a complete RAG pipeline
278
+ workflow.add_node("docs", DocumentSourceNode(directory="./knowledge"))
279
+ workflow.add_node("chunker", HierarchicalChunkerNode(chunk_size=512))
280
+ workflow.add_node("embedder", EmbeddingGeneratorNode(provider="openai"))
281
+ ```
282
+
283
+ ### REST API Wrapper
284
+
285
+ Transform any workflow into a production API:
286
+
287
+ ```python
288
+ from kailash.api import WorkflowAPI
289
+
290
+ # Create API from workflow
291
+ api = WorkflowAPI(workflow, host="0.0.0.0", port=8000)
292
+ api.run()
293
+
294
+ # Your workflow is now available at:
295
+ # POST http://localhost:8000/execute
296
+ # GET http://localhost:8000/workflow/info
297
+ ```
298
+
299
+ ## 🏗️ Key Components
300
+
301
+ ### Nodes (60+ built-in)
302
+
303
+ - **Data**: CSVReaderNode, JSONReaderNode, SQLDatabaseNode, DirectoryReaderNode
304
+ - **Transform**: DataTransformer, DataFrameFilter, DataFrameJoiner
305
+ - **AI/ML**: LLMAgentNode, EmbeddingGeneratorNode, A2ACoordinatorNode
306
+ - **API**: RESTClientNode, GraphQLNode, AuthNode
307
+ - **Logic**: SwitchNode, MergeNode, ConvergenceCheckerNode
308
+ - **Code**: PythonCodeNode, WorkflowNode
309
+
310
+ ### Runtimes
311
+
312
+ - **LocalRuntime**: Test workflows on your machine
313
+ - **DockerRuntime**: Run in containers (coming soon)
314
+ - **ParallelRuntime**: Execute nodes concurrently
315
+ - **CyclicWorkflowExecutor**: Optimized for iterative workflows
316
+
317
+ ### Visualization
318
+
319
+ - **Mermaid diagrams**: Workflow structure visualization
320
+ - **Real-time dashboard**: Monitor execution with WebSocket streaming
321
+ - **Performance metrics**: Track execution time, resource usage
322
+
323
+ ## 🧪 Testing Your Workflows
324
+
325
+ ```python
326
+ # Use the testing runtime for unit tests
327
+ from kailash.runtime.testing import TestingRuntime
328
+
329
+ runtime = TestingRuntime()
330
+ runtime.set_mock_result("read_customers", {"data": test_data})
331
+ results, run_id = runtime.execute(workflow)
332
+ assert results["analyze"]["result"]["total_customers"] == len(test_data)
333
+ ```
334
+
335
+ ## 🚢 Production Deployment
336
+
337
+ 1. **Export your workflow**:
338
+ ```python
339
+ export_workflow(workflow, "workflow.yaml", format="kailash")
340
+ ```
341
+
342
+ 2. **Deploy to Kailash**:
343
+ ```bash
344
+ kailash deploy workflow.yaml --environment production
345
+ ```
346
+
347
+ 3. **Monitor in real-time**:
348
+ ```python
349
+ from kailash.visualization import DashboardServer
350
+
351
+ server = DashboardServer(port=8080)
352
+ server.start()
353
+ # Open http://localhost:8080 for live monitoring
354
+ ```
355
+
356
+ ## 🤝 Contributing
357
+
358
+ We welcome contributions! We use a **Claude Code-driven workflow** for all team collaboration.
359
+
360
+ ### 🚀 New Team Member?
361
+ **Start Here → [NEW_TEAM_MEMBER.md](NEW_TEAM_MEMBER.md)**
362
+
363
+ ### For Contributors
364
+ - **SDK Users**: See [sdk-users/CLAUDE.md](sdk-users/CLAUDE.md) for building with the SDK
365
+ - **SDK Contributors**: See [sdk-contributors/CLAUDE.md](sdk-contributors/CLAUDE.md) for SDK development
366
+ - **Team Collaboration**: Use [Claude Code Workflow System](sdk-contributors/operations/claude-code-workflows/) for all project management
367
+
368
+ ### Claude Code Workflow
369
+ All project management is done through conversational interaction with Claude Code:
370
+ - **No manual TODO editing** - Claude Code handles all updates
371
+ - **No direct GitHub issues** - Created through planning sessions
372
+ - **All progress tracked** - Through natural conversation
373
+
374
+ See [Contributing Guide](CONTRIBUTING.md) for complete details.
375
+
376
+ ### Development Setup
377
+
378
+ ```bash
379
+ # Clone the repository
380
+ git clone https://github.com/integrum/kailash-python-sdk.git
381
+ cd kailash-python-sdk
382
+
383
+ # Install with development dependencies
384
+ uv sync
385
+
386
+ # Run tests
387
+ pytest
388
+
389
+ # Run linting
390
+ black .
391
+ isort .
392
+ ruff check .
393
+
394
+ # Test all examples
395
+ python scripts/test-all-examples.py
396
+ ```
397
+
398
+ ## 📈 Project Status
399
+
400
+ - ✅ Core workflow engine
401
+ - ✅ 60+ production-ready nodes
402
+ - ✅ Local and parallel runtimes
403
+ - ✅ Export to container format
404
+ - ✅ Real-time monitoring
405
+ - ✅ Comprehensive test suite (751 tests)
406
+ - ✅ Self-organizing agent systems
407
+ - ✅ Hierarchical RAG architecture
408
+ - ✅ REST API wrapper
409
+ - ✅ Cyclic workflow support with CycleBuilder API
410
+ - ✅ Production security framework
411
+ - ✅ Comprehensive workflow library (v0.2.2)
412
+ - 🚧 Visual workflow builder (in progress)
413
+ - 🚧 Docker runtime
414
+ - 🚧 Cloud deployment tools
415
+
416
+ ## 📄 License
417
+
418
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
419
+
420
+ ## 🙏 Acknowledgments
421
+
422
+ Built with ❤️ by the Integrum team for the Kailash ecosystem.
423
+
424
+ ---
425
+
426
+ <p align="center">
427
+ <strong>Ready to build your first workflow? Check out our <a href="examples/">examples</a> or dive into the <a href="sdk-users/README.md">documentation</a>!</strong>
428
+ </p>
@@ -1,4 +1,4 @@
1
- kailash/__init__.py,sha256=18nnQJjpf6wotVZ4nNepy5fR8UVttlbAktoQxTepsgk,902
1
+ kailash/__init__.py,sha256=bvM6Yopv0yxkaLCEHIK3IdJJ4yy3SSJqyIw1b6_nX_8,902
2
2
  kailash/__main__.py,sha256=vr7TVE5o16V6LsTmRFKG6RDKUXHpIWYdZ6Dok2HkHnI,198
3
3
  kailash/access_control.py,sha256=zLJ6vrBQj9VDO4SP9Mfci9OOu8II5tYq4ERSmWhycg8,25600
4
4
  kailash/manifest.py,sha256=8H4ObT3qvdV0FQDXYUF49ppbmOvnK1PmmpdC6h5npn8,24892
@@ -27,7 +27,7 @@ kailash/mcp/server_new.py,sha256=GukeeVSNuJG99hYo0cQs-oiPhT8UUaxr9yl96NYClXc,109
27
27
  kailash/mcp/servers/__init__.py,sha256=Ajho8j0chg36_DlMsyP6DLsvODgGesOvO0f95BgLxro,325
28
28
  kailash/mcp/servers/ai_registry.py,sha256=NLqhsOTD6L8HFOprY6IwaYD-kkgdZD3eg_sIuUPiAhY,10003
29
29
  kailash/nodes/__init__.py,sha256=MO2N1k-lq68CuQvsWiYV2GQG0T15X41E1aRkLFL46kU,650
30
- kailash/nodes/base.py,sha256=k8sKGsMriENzjg0cUtBZ2rUNuD6cvMNZX-DUfdZXxNg,38189
30
+ kailash/nodes/base.py,sha256=3QjoGS2MJwnduVY0K8ug9rl68wrdp1dZoJv9W0XaJug,38243
31
31
  kailash/nodes/base_async.py,sha256=t9Hf3F30q6CMDfgd2BFkXYIJMEGdEir8xdWCl9euqAs,6622
32
32
  kailash/nodes/base_cycle_aware.py,sha256=NJh-8zOfdgBzAK_3faMl9i2aqCp3f4RG1aQ-IJbSSxo,13293
33
33
  kailash/nodes/base_with_acl.py,sha256=aeIhLX3B17twYe_B-tba6e47bj7tZ9CstnlCana0aps,11868
@@ -42,16 +42,20 @@ kailash/nodes/ai/iterative_llm_agent.py,sha256=pUPIPt5TcvfCmw9Tw8fp3gQ6AfrLNAEIH
42
42
  kailash/nodes/ai/llm_agent.py,sha256=huU3GwJVOukn0qyJc6T7Nh2v-y-JvJsK-53bCUAZAg0,60780
43
43
  kailash/nodes/ai/models.py,sha256=t90NvEIEJJxdBXwW0DhKACQG1Um-sJPm-lBdPBt8-ZA,16399
44
44
  kailash/nodes/ai/self_organizing.py,sha256=NCUoq8y3aYZOJNToZhwgl0ExsE9vQaWN0CWAAWR4U7E,60584
45
- kailash/nodes/api/__init__.py,sha256=2WRWT7RuiTgcZi30j8DKPfUR4EGTzKMlENkZ2RfLSZU,2172
45
+ kailash/nodes/api/__init__.py,sha256=dzK6kiAdJcTQa7NSBkSmd5CCTSefBlMZMewGlTJSr0c,2334
46
46
  kailash/nodes/api/auth.py,sha256=cpHUIZ6-YFo3jkW0K4-eBP38EZCl7Lrfibg5XTZaPWo,19427
47
47
  kailash/nodes/api/graphql.py,sha256=PH1ccwbw-fsBfKHl8L_whkZSRMgGAPKM7kkLTmwci5s,16994
48
48
  kailash/nodes/api/http.py,sha256=XTkHmmVnGyvIqpNhmjUsRNuk-qYzvWdyF89cg5zHxI8,38396
49
+ kailash/nodes/api/monitoring.py,sha256=D8NKstHO3sBIggXzKMh1JyU38M2lhIGjJnvqv7illpI,17512
49
50
  kailash/nodes/api/rate_limiting.py,sha256=f-cY_ee5juWHyKT3FqtaTk-SjEgMWX2DxU10Y41DZG4,19728
50
51
  kailash/nodes/api/rest.py,sha256=yRLcNuIGVq5Nc1z759tc3Nqt3c2d7UnMqE7lZ8tVKMM,43357
52
+ kailash/nodes/api/security.py,sha256=doPTI_ukDgiVufznWvUg1ujqnPkprLI9vQyVOkZvJXQ,31422
51
53
  kailash/nodes/code/__init__.py,sha256=L3QBfnITPb6v-Wbq2ezNWt8xDlC4uGaTgrkqIJ9vGKU,1191
52
54
  kailash/nodes/code/python.py,sha256=v_EcP5O8mrqLRSlGXUCpy58e-1rO_rab4u5pC14dKB0,39006
53
- kailash/nodes/data/__init__.py,sha256=WIWopKl8Ht4sIQMiuu87qlXTtZpQs_Oc4_BTTN6Kv_U,4163
55
+ kailash/nodes/data/__init__.py,sha256=doke_AW6pax3rONERFPgYv0EGJUcSBq40d-P9Bty0OM,4389
54
56
  kailash/nodes/data/directory.py,sha256=yQQSHm7IcfGSY0LEmjOVg_DnTD4Ugt8YE7ymzM_NSKA,9948
57
+ kailash/nodes/data/event_generation.py,sha256=apLO7jtE2fOgNs0_2AJX_NFSMDE6s4h-PMYEnXedFbg,11626
58
+ kailash/nodes/data/file_discovery.py,sha256=Dicu7Pj8vjWs1bZ8_fjXBfWjOTprKK7008ltwh76_pQ,21939
55
59
  kailash/nodes/data/readers.py,sha256=zVAXHAX8yZp5fomlnjc8eXODjjiO8oaxeRWrg7uRk6s,19375
56
60
  kailash/nodes/data/retrieval.py,sha256=ANQXk0h5QI_NX_VdgABJEHbKWI3wtiRXCNgoap27M04,7516
57
61
  kailash/nodes/data/sharepoint_graph.py,sha256=UIyy8Q-9bGTzj-hjcxne8DkBJvr6Eig1HgY1JqGZqss,22437
@@ -71,16 +75,16 @@ kailash/nodes/mixins/mcp.py,sha256=kE3qhqHlyfUquPyk13u73zfj9oYWuhfrsjWo6q1xbIM,6
71
75
  kailash/nodes/transform/__init__.py,sha256=sIUk7XMEl3x_XKNiRIyVtHmbLRUa0jHj1fEuUyELT_s,584
72
76
  kailash/nodes/transform/chunkers.py,sha256=qh2wYq6bdo5qGoDRLrowDrpl4VinRO4hDOj05DOr3RY,2580
73
77
  kailash/nodes/transform/formatters.py,sha256=02T87cQ4nVJoUKV9spEBzKa1YxtbV_KurngbhnfkVao,3078
74
- kailash/nodes/transform/processors.py,sha256=vB1Q-_j2QjGQZye8M_CKpq6lq5v1K511c4JLUrXlUxM,19907
78
+ kailash/nodes/transform/processors.py,sha256=C3gc3qxLvXpHh6uAHsS23aI5fB0SGkRnBCaEBykqktw,19906
75
79
  kailash/runtime/__init__.py,sha256=CvU-qBMESYYISqFOlYlLsYJrXJu0Gqr4x6yr4Ob_Rng,278
76
80
  kailash/runtime/access_controlled.py,sha256=hEpLv9hwaaJoD03YTkUnr4rWEatFvgRrhu4sa1RTUU4,17274
77
- kailash/runtime/async_local.py,sha256=h8NrwgXOEX-pgozPS1_TPLCrWeSorf0AqridKX1yI2w,12264
78
- kailash/runtime/docker.py,sha256=U0nU4fGTLA59H25mBDFC6EkTXry-5bwXkWUgRw1qBqc,23559
79
- kailash/runtime/local.py,sha256=uDs0won_qgbUxEsXJuHS39FFHvhmPZExa2RYs1OjqHI,19668
80
- kailash/runtime/parallel.py,sha256=VPVSBglVqdnMyyHMgThDedbghK47f6-2Jx7434BAlz4,21129
81
- kailash/runtime/parallel_cyclic.py,sha256=vAlg_XvdMrrBuDbdhXhI88FCPYgIJ_t--zjKi1kJB1A,19942
81
+ kailash/runtime/async_local.py,sha256=Pt2Lfg_ri7GlbPT8riLCosgtm9TuiMfQvoWKDv02Dj4,12260
82
+ kailash/runtime/docker.py,sha256=ZUlrIohLRb6_417-V749_CiDQcPRCqgK0ucjEMoN9nI,23575
83
+ kailash/runtime/local.py,sha256=ygRzivuisVdxi3pkZpReQ3xTjjOmKlrfrdemQIRjj7U,20967
84
+ kailash/runtime/parallel.py,sha256=fLmgjR8XLOCz6Dia_Vkgn6nXL30hAubRF1TkT9_EUxA,21154
85
+ kailash/runtime/parallel_cyclic.py,sha256=nGqgRdGyrl5Bnwp8ZFP9iYTxnJRU5OYQaD2yQsCj_Tg,19967
82
86
  kailash/runtime/runner.py,sha256=wzTiC8hHoy3dca5NRImaw2qfjH1bkUJR2UaFwCkTV6Y,3246
83
- kailash/runtime/testing.py,sha256=UJdLD7Eh45sa3oIWy6Pe0LA6yf9NcY_9r8YXWUwSuEQ,11578
87
+ kailash/runtime/testing.py,sha256=zp2BcnNp3Ljia1iQ1XbOl6jE1TFKiejTlOLes_zZzhk,11570
84
88
  kailash/tracking/__init__.py,sha256=nhyecV24JuB_D-veJ3qw7h4oO8Sbdmyb6RvPS6VQktU,305
85
89
  kailash/tracking/manager.py,sha256=C7DEMLJN6oQwKnISHqwRbDuGdYs0_j0ATEE3FJjF8eA,28135
86
90
  kailash/tracking/metrics_collector.py,sha256=8CvNK3lUIN7BfGy0Re-2WrNKM3J0vx8vjfd-uyvaJJs,11820
@@ -91,24 +95,24 @@ kailash/tracking/storage/database.py,sha256=3pHaohN_tuP3bfV2gCD8vOdqJSZhuKlGRjig
91
95
  kailash/tracking/storage/filesystem.py,sha256=7Cmpd1CEWhtQu7Buf71d2Nda0r1btJEa7FuilctDP5w,19891
92
96
  kailash/utils/__init__.py,sha256=pFKhHJxU_kyFE9aGT5recw5E-3nbfVF5pMHepBJWB2E,253
93
97
  kailash/utils/export.py,sha256=LIahj_qIM0vaC5rFnV_iVGaL92jRp1WkYmi8pEgf6yE,31964
94
- kailash/utils/templates.py,sha256=WBZMd8-HoGB47nhJTSwxEkJi9etfNppOTiwtlZe2DFI,22049
98
+ kailash/utils/templates.py,sha256=cb72aN0JIm9WQHxYQupj3vybcBKSnWhakzpHNGLxkME,22014
95
99
  kailash/visualization/__init__.py,sha256=6bvgE_Rt8z3Rf4kSvdWvZNaTYvbofRHc_QbGlC0xDYE,1880
96
100
  kailash/visualization/api.py,sha256=jKjfxuufSsXZEsEWIu6_FF7XHQsjjO2d5MJfO0F8S20,28890
97
101
  kailash/visualization/dashboard.py,sha256=euAyqTu5QWwcUOhLBcdYrKnJdFVX_pQThlNLp-yYbaA,32874
98
- kailash/visualization/performance.py,sha256=qW4sI8ios8__j5-qXUhN7Pa3mE-9E3JTEBkFkt7fSY8,28053
99
- kailash/visualization/reports.py,sha256=FKERee_SUm12P3QEBwm4Up_WZYcgXPJfx_0ZAzcUNug,52671
102
+ kailash/visualization/performance.py,sha256=KqLObRImyfS3QnaGnX40Qw1cmb9vy5qZ2JUK6riQ080,28478
103
+ kailash/visualization/reports.py,sha256=GyfGv0mRlfWUXppix6jxhU-v7Z1USHrWwDr17opBOcw,52847
100
104
  kailash/workflow/__init__.py,sha256=x-yL8h6tsXq5gZj_fVYKJhyYJOEMFbaVXTNIomE-CDo,1011
101
105
  kailash/workflow/builder.py,sha256=zoNQT2LUym1ykkoVz5RK4O2aqsmZWGNXHkAnCi8xyUg,7683
102
106
  kailash/workflow/convergence.py,sha256=Xu0HZQKjQ1_Zk-BpydflNaFhZLR76mDoZ0B6KDX3d2I,10040
103
- kailash/workflow/cycle_analyzer.py,sha256=x8nY8mvMsAIfatNdDr9WUUV1G-qOevuqBIv9PLZ-cnE,32355
107
+ kailash/workflow/cycle_analyzer.py,sha256=Bn8rAsG3J973t9rGapLRbuuu8fe1LSKhovxJ6EkSmKo,32665
104
108
  kailash/workflow/cycle_builder.py,sha256=UqxXYSGsHg7KTZY-pKJSECB8XVXR4XB6NePo6nTIi0Q,20932
105
109
  kailash/workflow/cycle_config.py,sha256=KjbbA5jnqPwyqey8AacLEvu4CJAI4hJtAuXSxZA6Ew0,28417
106
110
  kailash/workflow/cycle_debugger.py,sha256=fTdxMpLYtRZYSkmVd9YL9xuZnx6Vy4ZOrn6KEskcb6o,31642
107
111
  kailash/workflow/cycle_exceptions.py,sha256=9MY_AmRFwqweideAQjfVA8oYgCDMvqiFKb9WLtEvDMU,21944
108
112
  kailash/workflow/cycle_profiler.py,sha256=vZb5KO8zadN5aDktlZrpsFRonJhSptAkrfRkQlSN4WY,28582
109
113
  kailash/workflow/cycle_state.py,sha256=M7f60R8idkHpgNhziutiZV3TPV-cSCz5K_VChHfkj1o,10834
110
- kailash/workflow/cyclic_runner.py,sha256=VUPU-OMiZB_hBGBtfFwvMAVgzAONNt62C5HuUeNXO4w,37222
111
- kailash/workflow/graph.py,sha256=CKrq1XSbJlTXuTHqlEItWzFUSPnh4B1I8OLFkoMbloE,52348
114
+ kailash/workflow/cyclic_runner.py,sha256=VjJUzNiPVPyOmlVs99FrTpHCTE7a8KRBRJJJ64QL7K4,37251
115
+ kailash/workflow/graph.py,sha256=THFh3pqVZEH7jnFyK-A11ppmdISugUcsuqk8bgBeZ6g,53058
112
116
  kailash/workflow/mermaid_visualizer.py,sha256=PU_uVeYqR1m59z-qhbQOJHztf0um3FYw9jpF3j22QYA,22351
113
117
  kailash/workflow/migration.py,sha256=h67EGYnMg32dukHBF9AdPeQh7mYTCO9O07pNsBTSeVc,31515
114
118
  kailash/workflow/mock_registry.py,sha256=oweiPQ-mBuDdzTUbo3qZAW6OaBKNqST_1vX32xMtcL4,1704
@@ -117,10 +121,10 @@ kailash/workflow/safety.py,sha256=pWXpl1ED76HejNoTn-M5fY4hVB-_-WBWP2_2uo4WGd0,11
117
121
  kailash/workflow/state.py,sha256=3vZkptVfPYqN-Q9aFwO2sUpmy-l1h5vIMVwh67uTwE4,7722
118
122
  kailash/workflow/templates.py,sha256=WCgN_Xeu9kpdC2Fqdh0NqyJc8ebvQyAK6ZfYyQM2lFM,24410
119
123
  kailash/workflow/validation.py,sha256=6Cgs_uTiznywJS6OQz0VuXpHdAjs2XfF88CGj7D3R7k,33094
120
- kailash/workflow/visualization.py,sha256=gSMT-jaSzQBufV4mDArWVPJj5bpNIxTa_NE796Rm8I8,19536
121
- kailash-0.2.2.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
122
- kailash-0.2.2.dist-info/METADATA,sha256=0TGFi3rSktL4EFH2R4wpIOse2Z2f5cWlcJMhKqHNT8w,4758
123
- kailash-0.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
- kailash-0.2.2.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
125
- kailash-0.2.2.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
126
- kailash-0.2.2.dist-info/RECORD,,
124
+ kailash/workflow/visualization.py,sha256=gOrsXyA1K2nqFl0XHpB7D-in0bKT2Un7OqDb8O8G-oU,19787
125
+ kailash-0.3.0.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
126
+ kailash-0.3.0.dist-info/METADATA,sha256=1qxdXgUpB_tExkuZ8uhKcFUoljg0Eq6cXPsrO3yBOok,14388
127
+ kailash-0.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
128
+ kailash-0.3.0.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
129
+ kailash-0.3.0.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
130
+ kailash-0.3.0.dist-info/RECORD,,
@@ -1,121 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: kailash
3
- Version: 0.2.2
4
- Summary: Python SDK for the Kailash container-node architecture
5
- Home-page: https://github.com/integrum/kailash-python-sdk
6
- Author: Integrum
7
- Author-email: Integrum <info@integrum.com>
8
- Project-URL: Homepage, https://github.com/integrum/kailash-python-sdk
9
- Project-URL: Bug Tracker, https://github.com/integrum/kailash-python-sdk/issues
10
- Classifier: Development Status :: 3 - Alpha
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.11
14
- Classifier: Programming Language :: Python :: 3.12
15
- Requires-Python: >=3.11
16
- Description-Content-Type: text/markdown
17
- License-File: LICENSE
18
- Requires-Dist: networkx>=2.7
19
- Requires-Dist: pydantic>=1.9
20
- Requires-Dist: matplotlib>=3.5
21
- Requires-Dist: pyyaml>=6.0
22
- Requires-Dist: click>=8.0
23
- Requires-Dist: pytest>=8.3.5
24
- Requires-Dist: mcp[cli]>=1.9.2
25
- Requires-Dist: pandas>=2.2.3
26
- Requires-Dist: numpy>=2.2.5
27
- Requires-Dist: scipy>=1.15.3
28
- Requires-Dist: scikit-learn>=1.6.1
29
- Requires-Dist: requests>=2.32.3
30
- Requires-Dist: pytest-cov>=6.1.1
31
- Requires-Dist: isort>=6.0.1
32
- Requires-Dist: aiohttp>=3.12.4
33
- Requires-Dist: ruff>=0.11.12
34
- Requires-Dist: msal>=1.32.3
35
- Requires-Dist: sphinx>=8.2.3
36
- Requires-Dist: sphinx-rtd-theme>=3.0.2
37
- Requires-Dist: sphinx-copybutton>=0.5.2
38
- Requires-Dist: sphinxcontrib-mermaid>=1.0.0
39
- Requires-Dist: sphinx-autobuild>=2024.10.3
40
- Requires-Dist: autodoc>=0.5.0
41
- Requires-Dist: myst-parser>=4.0.1
42
- Requires-Dist: black>=25.1.0
43
- Requires-Dist: psutil>=7.0.0
44
- Requires-Dist: fastapi>=0.115.12
45
- Requires-Dist: uvicorn[standard]>=0.31.0
46
- Requires-Dist: pytest-asyncio>=1.0.0
47
- Requires-Dist: pre-commit>=4.2.0
48
- Requires-Dist: twine>=6.1.0
49
- Requires-Dist: ollama>=0.5.1
50
- Requires-Dist: sqlalchemy>=2.0.0
51
- Requires-Dist: psycopg2-binary>=2.9.0
52
- Requires-Dist: pymysql>=1.1.0
53
- Requires-Dist: aiosqlite>=0.19.0
54
- Requires-Dist: websockets>=12.0
55
- Requires-Dist: httpx>=0.25.0
56
- Requires-Dist: python-jose>=3.5.0
57
- Requires-Dist: pytest-xdist>=3.6.0
58
- Requires-Dist: pytest-timeout>=2.3.0
59
- Requires-Dist: pytest-split>=0.9.0
60
- Provides-Extra: dev
61
- Requires-Dist: pytest>=7.0; extra == "dev"
62
- Requires-Dist: pytest-cov>=3.0; extra == "dev"
63
- Requires-Dist: black>=22.0; extra == "dev"
64
- Requires-Dist: isort>=5.10; extra == "dev"
65
- Requires-Dist: mypy>=0.9; extra == "dev"
66
- Dynamic: author
67
- Dynamic: home-page
68
- Dynamic: license-file
69
- Dynamic: requires-python
70
-
71
- # Kailash Python SDK - Internal Development Guide
72
-
73
- This directory contains internal documentation for developers and contributors to the Kailash Python SDK. These documents are not included in the PyPI distribution and are only accessible to those with access to this private repository.
74
-
75
- ## Directory Structure
76
-
77
- ### Core Directories (with README.md):
78
- - **`adr/`** - Architecture Decision Records (35+ design decisions)
79
- - **`features/`** - In-depth feature implementation guides
80
- - **`reference/`** - LLM-optimized API references and patterns
81
- - **`instructions/`** - Detailed coding and documentation standards
82
- - **`frontend/`** - Frontend development guide
83
- - **`workflows/`** - Development workflows and task checklists
84
-
85
- ### Additional Directories:
86
- - **`development/`** - SDK development guides and tools
87
- - **`custom-nodes/`** - Comprehensive custom node development guide (parameter types, examples, troubleshooting)
88
- - **`pre-commit-hooks.md`** - Development workflow automation
89
- - **`infrastructure/`** - CI/CD and runner configuration
90
- - **`mistakes/`** - Documented mistakes and lessons learned (73+ issues, including critical v0.2.1 base node fixes)
91
- - **`prd/`** - Product Requirements Documents
92
- - **`todos/`** - Active task tracking system
93
- - **`SECURITY.md`** - Comprehensive security documentation
94
-
95
- ### In project root:
96
- - **`CLAUDE.md`** - Compact LLM quick reference (optimized navigation)
97
-
98
- ## Important Notes
99
-
100
- 1. **Private Documentation**: All content in this directory is considered internal and should not be shared publicly.
101
-
102
- 2. **Not Distributed**: These files are explicitly excluded from PyPI packages via `MANIFEST.in`.
103
-
104
- 3. **Development Reference**: Use these documents to understand design decisions, development patterns, and project history.
105
-
106
- ## For Contributors
107
-
108
- When contributing to the project:
109
- 1. Review `CLAUDE.md` for coding standards and conventions
110
- 2. Check ADRs for architectural decisions
111
- 3. Consult PRDs for product requirements
112
- 4. Learn from documented mistakes to avoid common pitfalls
113
- 5. Track tasks using the todos system
114
- 6. **Creating custom nodes?** See `development/custom-nodes/` for critical parameter type constraints
115
-
116
- ## Accessing Documentation
117
-
118
- These documents are only available when:
119
- - Cloning the repository directly from GitHub
120
- - Having access to the private repository
121
- - Working on development (not from PyPI installation)