kailash 0.4.1__py3-none-any.whl → 0.5.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.
- kailash/__init__.py +3 -4
- kailash/middleware/__init__.py +4 -2
- kailash/middleware/auth/__init__.py +55 -12
- kailash/middleware/auth/exceptions.py +80 -0
- kailash/middleware/auth/jwt_auth.py +265 -123
- kailash/middleware/auth/models.py +137 -0
- kailash/middleware/auth/utils.py +257 -0
- kailash/middleware/communication/api_gateway.py +49 -7
- kailash/middleware/core/agent_ui.py +108 -1
- kailash/middleware/database/repositories.py +3 -1
- kailash/middleware/mcp/enhanced_server.py +2 -2
- kailash/nodes/admin/audit_log.py +364 -6
- kailash/nodes/admin/user_management.py +1006 -20
- kailash/nodes/api/http.py +95 -71
- kailash/nodes/base.py +281 -164
- kailash/nodes/base_async.py +30 -31
- kailash/nodes/code/python.py +18 -0
- kailash/nodes/data/async_sql.py +3 -22
- kailash/utils/resource_manager.py +420 -0
- kailash/workflow/builder.py +93 -10
- kailash/workflow/cyclic_runner.py +4 -25
- {kailash-0.4.1.dist-info → kailash-0.5.0.dist-info}/METADATA +6 -4
- {kailash-0.4.1.dist-info → kailash-0.5.0.dist-info}/RECORD +27 -24
- kailash/middleware/auth/kailash_jwt_auth.py +0 -616
- {kailash-0.4.1.dist-info → kailash-0.5.0.dist-info}/WHEEL +0 -0
- {kailash-0.4.1.dist-info → kailash-0.5.0.dist-info}/entry_points.txt +0 -0
- {kailash-0.4.1.dist-info → kailash-0.5.0.dist-info}/licenses/LICENSE +0 -0
- {kailash-0.4.1.dist-info → kailash-0.5.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: kailash
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.0
|
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
|
@@ -120,12 +120,13 @@ Dynamic: requires-python
|
|
120
120
|
- 🏭 **Session 067 Enhancements**: Business workflow templates, data lineage tracking, automatic credential rotation
|
121
121
|
- 🔄 **Zero-Downtime Operations**: Automatic credential rotation with enterprise notifications and audit trails
|
122
122
|
- 🌉 **Enterprise Middleware (v0.4.0)**: Production-ready middleware architecture with real-time agent-frontend communication, dynamic workflows, and AI chat integration
|
123
|
+
- ⚡ **Performance Revolution (v0.5.0)**: 10-100x faster parameter resolution, clear async/sync separation, automatic resource management
|
123
124
|
|
124
125
|
## 🏗️ Project Architecture
|
125
126
|
|
126
127
|
The Kailash project is organized into three distinct layers:
|
127
128
|
|
128
|
-
### Core Architecture (v0.
|
129
|
+
### Core Architecture (v0.5.0)
|
129
130
|
```
|
130
131
|
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
|
131
132
|
│ Frontend │ │ Middleware │ │ Kailash Core │
|
@@ -150,9 +151,10 @@ kailash_python_sdk/
|
|
150
151
|
1. **SDK Layer** (`src/kailash/`) - The core framework providing:
|
151
152
|
- Nodes: Reusable computational units (100+ built-in)
|
152
153
|
- Workflows: DAG-based orchestration with cyclic support
|
153
|
-
- Runtime: Unified execution engine
|
154
|
-
- Middleware: Enterprise communication layer (
|
154
|
+
- Runtime: Unified execution engine with optimized async/sync separation (v0.5.0)
|
155
|
+
- Middleware: Enterprise communication layer (v0.4.0)
|
155
156
|
- Security: RBAC/ABAC access control with audit logging
|
157
|
+
- Performance: LRU parameter caching, automatic resource pooling (NEW in v0.5.0)
|
156
158
|
|
157
159
|
2. **Application Layer** (`apps/`) - Complete applications including:
|
158
160
|
- User Management System (Django++ capabilities)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
kailash/__init__.py,sha256=
|
1
|
+
kailash/__init__.py,sha256=DNNHLV-T781fKqEzh6k-FKu74CJHZG9hsjx6a9xxV48,1724
|
2
2
|
kailash/__main__.py,sha256=vr7TVE5o16V6LsTmRFKG6RDKUXHpIWYdZ6Dok2HkHnI,198
|
3
3
|
kailash/access_control.py,sha256=2ctdRFeSeu-d7DU04Aovxh6Rt_4t3IyQfkKEjTeQiMM,25519
|
4
4
|
kailash/access_control_abac.py,sha256=FPfa_8PuDP3AxTjdWfiH3ntwWO8NodA0py9W8SE5dno,30263
|
@@ -33,19 +33,21 @@ kailash/mcp/utils/cache.py,sha256=dLEseovPaXL4lRzMSw7tqd3tJHwnWfhdZ-HKGyScJXI,84
|
|
33
33
|
kailash/mcp/utils/config.py,sha256=DyZxgdy3vqI5pwhQ_E-42mhueVGNHiuOtTUOrM9HC_U,8124
|
34
34
|
kailash/mcp/utils/formatters.py,sha256=D-2j1nvmprApiUI13HWY-L2_WPSAcJDtVdHcshAuOdo,9740
|
35
35
|
kailash/mcp/utils/metrics.py,sha256=MNUjWGQyq1EGdeqzAKCCZJNgcWHOyaYAV8MlS2cb-4k,13754
|
36
|
-
kailash/middleware/__init__.py,sha256=
|
37
|
-
kailash/middleware/auth/__init__.py,sha256=
|
36
|
+
kailash/middleware/__init__.py,sha256=ZGo0qujL-qWn82nIrojY96N1rMPTWFKHumW6CGGpb4Y,10409
|
37
|
+
kailash/middleware/auth/__init__.py,sha256=VkKM8H-zVFx2PLGL7kyxE2IfSiV1HiwveSysbmxMcg0,2077
|
38
38
|
kailash/middleware/auth/access_control.py,sha256=u8jlfTXRkRteHXi-kiwSGfFFKzAfabxWR6t6L4dU2bk,14954
|
39
39
|
kailash/middleware/auth/auth_manager.py,sha256=d1XFJ9jOCrOTwV26qO0b7wBOSbroTvTxaJADII-mCz0,14057
|
40
|
-
kailash/middleware/auth/
|
41
|
-
kailash/middleware/auth/
|
40
|
+
kailash/middleware/auth/exceptions.py,sha256=tPDQgaX9nMQ9BJZR3Y5tv2LwLy8pZcUz-uFATQjALRA,2496
|
41
|
+
kailash/middleware/auth/jwt_auth.py,sha256=r4dauFKcoARHj0yb4f4WwBmY9YQpLNBGyk4gdBZEI1k,21626
|
42
|
+
kailash/middleware/auth/models.py,sha256=RSLiP3GeOFgQ6p1ZSV0zIsfo8a_3nkbF9ctPoAKtYEA,3509
|
43
|
+
kailash/middleware/auth/utils.py,sha256=AW4fYJ2opQvOr_1YgSQi_MsC_RoFPq0XVOEgbxoXWtw,6555
|
42
44
|
kailash/middleware/communication/__init__.py,sha256=keQ2db4WI2-oZ_nJ5sLE1Tum_RkUt7M2VLTmqOlt0zA,778
|
43
45
|
kailash/middleware/communication/ai_chat.py,sha256=T4R2dujQ40cFH3mI09FTpc6UCbjTItvFLwG0JGe48BQ,36045
|
44
|
-
kailash/middleware/communication/api_gateway.py,sha256=
|
46
|
+
kailash/middleware/communication/api_gateway.py,sha256=NMO-Kysvv_z0c8LORvPViPj31nTnkExV0vvlieVni9w,31724
|
45
47
|
kailash/middleware/communication/events.py,sha256=MEjgcibNyjA4tSFK8CeXDn1oCE75My7K_saxdCBz2HY,15367
|
46
48
|
kailash/middleware/communication/realtime.py,sha256=JS7lMV1_Ta5orvTJPQsetdCdvIiUdsgYt7M7NSQu6fs,24951
|
47
49
|
kailash/middleware/core/__init__.py,sha256=4yQkOWC4b88zSogs1YVqtKG1PugbncqNCwNNWxTdIZA,545
|
48
|
-
kailash/middleware/core/agent_ui.py,sha256=
|
50
|
+
kailash/middleware/core/agent_ui.py,sha256=MVmKznG2OcSF3quIr_uNR7rbPv7aaB2VgkHu2hA1AU4,36097
|
49
51
|
kailash/middleware/core/schema.py,sha256=uVF-5ZJlLYHOQdsKrG46FnTO1bq_QtDjhUSkIIDL9dY,23584
|
50
52
|
kailash/middleware/core/workflows.py,sha256=kjwwP69-T6eCY7kWIMLUBwVy2CapoPR34cqCETquq0s,12480
|
51
53
|
kailash/middleware/database/__init__.py,sha256=UMws94L-vja94AjfzPWIgn0h4_5BGQzI3YaSdqtzeLk,1682
|
@@ -54,24 +56,24 @@ kailash/middleware/database/base_models.py,sha256=XBcHEUmcpl2f6zZHCAgHQ_0jqUB3Gl
|
|
54
56
|
kailash/middleware/database/enums.py,sha256=Yo_wMS7OpsleWtNMESTc2LTf15d93nPnBADIn2EHjeQ,2516
|
55
57
|
kailash/middleware/database/migrations.py,sha256=v5VZxsqciwmOl3rzIBQLp5p6-OP8OG_EL3mu65_yrCM,240
|
56
58
|
kailash/middleware/database/models.py,sha256=CJwwUEdgxqBteXqpFJr1tWskjypJxViZXjODZlByrFk,17784
|
57
|
-
kailash/middleware/database/repositories.py,sha256=
|
59
|
+
kailash/middleware/database/repositories.py,sha256=7l2OcAem5sMQxbbnmBR4O22P-OcLv5zEo-4r9fIMl1o,23340
|
58
60
|
kailash/middleware/database/session_manager.py,sha256=Pzj7c2TZnM3GRty2igSaxmLOf0-Fs67NVe2Q5lR_C-Q,379
|
59
61
|
kailash/middleware/mcp/__init__.py,sha256=EdZB8zOMSBEEmudRzs8ksz9QZJYWQMEx7Tm1MOwIWnI,922
|
60
62
|
kailash/middleware/mcp/client_integration.py,sha256=opzhB5TUts_ND8gARXh93nKCc1u4kwo6SqNMMWqMcSU,18258
|
61
|
-
kailash/middleware/mcp/enhanced_server.py,sha256=
|
63
|
+
kailash/middleware/mcp/enhanced_server.py,sha256=ydU265wAoC2d2sFLuuVzmETowzH9qsqvrzJ5mrwEVvU,18458
|
62
64
|
kailash/nodes/__init__.py,sha256=E6CEp1ooq4GgFhKtwVAczOhPt5N3x-AVQ-R0n3_IFyA,936
|
63
|
-
kailash/nodes/base.py,sha256=
|
64
|
-
kailash/nodes/base_async.py,sha256=
|
65
|
+
kailash/nodes/base.py,sha256=Fu9c2I5k_Ke192y4fj2NVhf-Y_I0nPr0sDE1zMSRCJY,55417
|
66
|
+
kailash/nodes/base_async.py,sha256=mpntaeFMbUYLIyTvjsb221mXckx_H2dGX2LhxeKhhfA,6569
|
65
67
|
kailash/nodes/base_cycle_aware.py,sha256=Xpze9xZzLepWeLpi9Y3tMn1dm2LVv-omr5TSQuGTtWo,13377
|
66
68
|
kailash/nodes/base_with_acl.py,sha256=kY_OWfjHWy6uCw60zGgGybqk7dnNL6kST69cFbd9XqM,11844
|
67
69
|
kailash/nodes/mixins.py,sha256=ncAdNQPe1sphLByeerP6G_s8mjFLt7dM4baiozzIBPA,12083
|
68
70
|
kailash/nodes/validation.py,sha256=tuBZRZkDiEdvfeU7JaRB7v2-j1vxPYMJ1gVaJ-PKHRk,12117
|
69
71
|
kailash/nodes/admin/__init__.py,sha256=C9_pK2w0rH6JEV_-roypeasAIyIhEFKKnH-npGBeew0,1508
|
70
|
-
kailash/nodes/admin/audit_log.py,sha256=
|
72
|
+
kailash/nodes/admin/audit_log.py,sha256=CSSeWwAK-_hGYXs8eess89wNVju8jvsdNKA1A1946to,41066
|
71
73
|
kailash/nodes/admin/permission_check.py,sha256=yA_vHWzMg3KH27oDnu1M6IWfxXWsRnH0m8x72YKkrFI,32484
|
72
74
|
kailash/nodes/admin/role_management.py,sha256=2jDQak5jIblP5Dd7vSCKt7h-4vbi6AEhCynu3blQ3vw,30184
|
73
75
|
kailash/nodes/admin/security_event.py,sha256=We_nGn6_J004b7LQVd0nKU6LmhJ6vyrl5zySC3xVdfo,56336
|
74
|
-
kailash/nodes/admin/user_management.py,sha256=
|
76
|
+
kailash/nodes/admin/user_management.py,sha256=g9YUWcxo1Sph2dsCZpiu_f9k3tsEd_rEv6k0njH--vQ,72118
|
75
77
|
kailash/nodes/ai/__init__.py,sha256=rslxIS8jlovshiNgWqVzQjD_kfT_3h3Ct03sk-iRe6U,2202
|
76
78
|
kailash/nodes/ai/a2a.py,sha256=QpTPl-Cm6mqzM0unLfqPrgEu964QP47g5p2T4clVPMs,70004
|
77
79
|
kailash/nodes/ai/agents.py,sha256=CRA3cdapQjpuvOniXUh6ZVWAlRxUIepVw1BROW6QzdY,20373
|
@@ -89,7 +91,7 @@ kailash/nodes/alerts/discord.py,sha256=IPVyhb0i0QcWXxdP3MyeGCDP30pdSu-bEV-ueh9fw
|
|
89
91
|
kailash/nodes/api/__init__.py,sha256=dzK6kiAdJcTQa7NSBkSmd5CCTSefBlMZMewGlTJSr0c,2334
|
90
92
|
kailash/nodes/api/auth.py,sha256=mve8rdshFIfLpkJX6M9opgDDru1LjcTyf3KpuCs1wd0,30869
|
91
93
|
kailash/nodes/api/graphql.py,sha256=6UBqWBbAysrerrx9lQMwwRM6mZT4-65ZINPhC_ObWmA,16975
|
92
|
-
kailash/nodes/api/http.py,sha256=
|
94
|
+
kailash/nodes/api/http.py,sha256=cFuhzMWkFDNg5ufM1V8Hr-DC6GqNQnq86nFWlZmmomQ,39284
|
93
95
|
kailash/nodes/api/monitoring.py,sha256=vV0nLPyqw34YgsZvuegxNMSLyHU59pMdnzkdXelPYFc,17468
|
94
96
|
kailash/nodes/api/rate_limiting.py,sha256=kzArU7OrkDGLSqbjiOs5TSZz4VJsLeQYuYzOzwkfqSI,19657
|
95
97
|
kailash/nodes/api/rest.py,sha256=d1o6-Lz0-Hq9c5XSwuiwxajmLuZEcSoK-49awYjDByw,48738
|
@@ -102,13 +104,13 @@ kailash/nodes/auth/risk_assessment.py,sha256=ZVKYCXp8saTBsVxonh2YAM_BkqBPg5HtulR
|
|
102
104
|
kailash/nodes/auth/session_management.py,sha256=FzOxic3hjmRlMiAQy7ps8a7XO7AoxYToZL9ywAcwKxY,38694
|
103
105
|
kailash/nodes/auth/sso.py,sha256=m-sYRNGEWwKfpvAzaHikGC3Wy45h0o-JhqgeYLTTV24,38507
|
104
106
|
kailash/nodes/code/__init__.py,sha256=L3QBfnITPb6v-Wbq2ezNWt8xDlC4uGaTgrkqIJ9vGKU,1191
|
105
|
-
kailash/nodes/code/python.py,sha256=
|
107
|
+
kailash/nodes/code/python.py,sha256=v5pGJms-0CWKHGn8TI7c_lyPEYrNdl3A9azddTfDFuc,51417
|
106
108
|
kailash/nodes/compliance/__init__.py,sha256=6a_FL4ofc8MAVuZ-ARW5uYenZLS4mBFVM9AI2QsnoF8,214
|
107
109
|
kailash/nodes/compliance/data_retention.py,sha256=rP85W9mIbbVb4LqxPFYYFySgUJXI5Q5mdoYLY0o3Mnw,69419
|
108
110
|
kailash/nodes/compliance/gdpr.py,sha256=iEAVU7Faqp0HVHk2KLw51oXr6VyJPycvsVL5IQR4ciY,70528
|
109
111
|
kailash/nodes/data/__init__.py,sha256=4UVGZ77ZjCUdDQqwOrhZH60Ka8hGVrZMZCySPk9mFJc,4898
|
110
112
|
kailash/nodes/data/async_connection.py,sha256=wfArHs9svU48bxGZIiixSV2YVn9cukNgEjagwTRu6J4,17250
|
111
|
-
kailash/nodes/data/async_sql.py,sha256=
|
113
|
+
kailash/nodes/data/async_sql.py,sha256=6DQ7idKe3R6F4Z4Ivmjtb3w0Vl8CAzndDJpCGKSHFho,27155
|
112
114
|
kailash/nodes/data/async_vector.py,sha256=HtwQLO25IXu8Vq80qzU8rMkUAKPQ2qM0x8YxjXHlygU,21005
|
113
115
|
kailash/nodes/data/directory.py,sha256=fbfLqD_ijRubk-4xew3604QntPsyDxqaF4k6TpfyjDg,9923
|
114
116
|
kailash/nodes/data/event_generation.py,sha256=Bc1se0tPg1IAGCQDrWqlFmgoOpUyfMN9ku4Lm3akhXU,11579
|
@@ -186,6 +188,7 @@ kailash/tracking/storage/database.py,sha256=O3-qYmgwTccq9jYl25C0L6R398pXPsWkIAoW
|
|
186
188
|
kailash/tracking/storage/filesystem.py,sha256=VhWxNvqf_Ta3mIaGqKuOrcCqQiEvJj7S8NK5yRd1V68,19627
|
187
189
|
kailash/utils/__init__.py,sha256=pFKhHJxU_kyFE9aGT5recw5E-3nbfVF5pMHepBJWB2E,253
|
188
190
|
kailash/utils/export.py,sha256=HViwFBtg20VnGBC9gQjHcnu44wQ1u2vOZMXR8EtfGvw,31913
|
191
|
+
kailash/utils/resource_manager.py,sha256=xMgcSogLofUIRpRMXzmK4gxBi2lIqEJ7rn2rsBBm9xo,13209
|
189
192
|
kailash/utils/secure_logging.py,sha256=3iEJt7sXnIgvdiRz8qsx0JbcygrsUf0_C8UHFXLNfcs,11325
|
190
193
|
kailash/utils/templates.py,sha256=1O9mniUTJmZZFkC1gFaWy73pDIZxcawljDIQpPj6G9Q,21977
|
191
194
|
kailash/utils/migrations/__init__.py,sha256=smrA1fcJ88d0mDHukhcxM0oNI9hYlLbbUL9-wgdetHs,758
|
@@ -198,7 +201,7 @@ kailash/visualization/dashboard.py,sha256=26uL82scgQEhOhqDTyZ-UJr9rNkW9pLw_iJ9bI
|
|
198
201
|
kailash/visualization/performance.py,sha256=KvB7IG8Un2sM1ZnT1TWOabwj4kK40DlCWUN33Mb89nk,28514
|
199
202
|
kailash/visualization/reports.py,sha256=D7kJ0flHr16d-qSEq8vnw20N8u_dgTrXtKVSXVm886w,52778
|
200
203
|
kailash/workflow/__init__.py,sha256=eUTrN7nVrbw1VaqGeYUzFjC0Un5YIjzh3-03OWPiFSs,1513
|
201
|
-
kailash/workflow/builder.py,sha256=
|
204
|
+
kailash/workflow/builder.py,sha256=CPnfNHlL4HKsX58BI4kOv-CLNrFa_7cg_0lBqqVByYw,10779
|
202
205
|
kailash/workflow/convergence.py,sha256=vfIDR-uNaQE-LVUEzrRtfgKPgX9gL0nLNH-nTg5ra-c,10031
|
203
206
|
kailash/workflow/cycle_analyzer.py,sha256=BGBpgdB-g0-KRI65sVAvHV4lxfoCzMt4uKOHbw8GXT4,32596
|
204
207
|
kailash/workflow/cycle_builder.py,sha256=uWAx8K4ZKMtFC3mWylK4gHT03xeu0xChJlhw50hVqEE,20883
|
@@ -207,7 +210,7 @@ kailash/workflow/cycle_debugger.py,sha256=eG-Q_kakqyhr1Ts-q4pRnO0EI7mVO9ao1s9WOx
|
|
207
210
|
kailash/workflow/cycle_exceptions.py,sha256=4_OLnbEXqIiXKzOc3uh8DzFik4wEHwl8bRZhY9Xhf2A,21838
|
208
211
|
kailash/workflow/cycle_profiler.py,sha256=aEWSCm0Xy15SjgLTpPooVJMzpFhtJWt4livR-3Me4N8,28547
|
209
212
|
kailash/workflow/cycle_state.py,sha256=hzRUvciRreWfS56Cf7ZLQPit_mlPTQDoNTawh8yi-2s,10747
|
210
|
-
kailash/workflow/cyclic_runner.py,sha256=
|
213
|
+
kailash/workflow/cyclic_runner.py,sha256=Q3-pwYBYrrqSnv6sbMo2pdq_PUUN0xbIz-QjpEtrSqE,36092
|
211
214
|
kailash/workflow/graph.py,sha256=Dk-5DuhybQlBprLIkblMEmChc9a-Xci7elDqHa4JEGI,55920
|
212
215
|
kailash/workflow/mermaid_visualizer.py,sha256=UsQDvxgIAhy-Th7ZzFnbuziaTx1Cd5yUh6S_25DffoQ,22294
|
213
216
|
kailash/workflow/migration.py,sha256=zsmXgbUtOZdjoOx9YoEY0-x7uOY1T-_yQo4MnZjokCQ,31487
|
@@ -219,9 +222,9 @@ kailash/workflow/state.py,sha256=UTZxs5-Ona6uvBhx1__i6-RX8gB4qazkBIWE7uyRmWQ,760
|
|
219
222
|
kailash/workflow/templates.py,sha256=MTIMHGyQML6omLbqeKDbTVIVykfXG6pIFWTTsGBUHN0,48591
|
220
223
|
kailash/workflow/validation.py,sha256=JIbIajWVIaWHSvWtgZ4WUVJaBaUOCz5B9cyTwM--dL4,33060
|
221
224
|
kailash/workflow/visualization.py,sha256=ICMWCWqh5fOQ7eJygbvu2PMWHxe-H5_0epwdZuz8cMw,19737
|
222
|
-
kailash-0.
|
223
|
-
kailash-0.
|
224
|
-
kailash-0.
|
225
|
-
kailash-0.
|
226
|
-
kailash-0.
|
227
|
-
kailash-0.
|
225
|
+
kailash-0.5.0.dist-info/licenses/LICENSE,sha256=Axe6g7bTrJkToK9h9j2SpRUKKNaDZDCo2lQ2zPxCE6s,1065
|
226
|
+
kailash-0.5.0.dist-info/METADATA,sha256=j4mPimtOBR2E8IoFOKKuYYLCNQQMA7-gYIqaPOpPTuQ,25034
|
227
|
+
kailash-0.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
228
|
+
kailash-0.5.0.dist-info/entry_points.txt,sha256=M_q3b8PG5W4XbhSgESzIJjh3_4OBKtZFYFsOdkr2vO4,45
|
229
|
+
kailash-0.5.0.dist-info/top_level.txt,sha256=z7GzH2mxl66498pVf5HKwo5wwfPtt9Aq95uZUpH6JV0,8
|
230
|
+
kailash-0.5.0.dist-info/RECORD,,
|