kalavai-client 0.5.30__py3-none-any.whl → 0.6.1__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.
kalavai_client/utils.py CHANGED
@@ -12,8 +12,7 @@ from jinja2 import Template
12
12
  from rich.table import Table
13
13
  import yaml
14
14
 
15
-
16
- from kalavai_client.auth import KalavaiAuthClient
15
+ from kalavai_client.auth import KalavaiAuth
17
16
  from kalavai_client.env import (
18
17
  SERVER_IP_KEY,
19
18
  DOCKER_COMPOSE_TEMPLATE,
@@ -22,6 +21,7 @@ from kalavai_client.env import (
22
21
  DEFAULT_VPN_CONTAINER_NAME,
23
22
  CONTAINER_HOST_PATH,
24
23
  USER_COMPOSE_FILE,
24
+ USER_COOKIE,
25
25
  user_path
26
26
  )
27
27
 
@@ -38,6 +38,8 @@ CLUSTER_NAME_KEY = "cluster_name"
38
38
  AUTH_KEY = "watcher_admin_key"
39
39
  WRITE_AUTH_KEY = "watcher_write_key"
40
40
  ALLOW_UNREGISTERED_USER_KEY = "watcher_allow_unregistered_user"
41
+ DEPLOY_LLM_SIDECARS_KEY = "deploy_llm_sidecars"
42
+ NODE_ROLE_LABEL = "kalavai.node_role"
41
43
  USER_API_KEY = "user_api_key"
42
44
  READONLY_AUTH_KEY = "watcher_readonly_key"
43
45
  WATCHER_SERVICE_KEY = "watcher_service"
@@ -62,6 +64,12 @@ MANDATORY_POOLCONFIG_FIELDS = [
62
64
  PUBLIC_LOCATION_KEY
63
65
  ]
64
66
 
67
+ KALAVAI_AUTH = KalavaiAuth(
68
+ auth_service_url="dummy_url",
69
+ auth_service_key="dummy_key",
70
+ user_cookie_file=USER_COOKIE
71
+ )
72
+
65
73
 
66
74
  ####### Methods to check OS compatibility ########
67
75
  def check_gpu_drivers():
@@ -92,7 +100,7 @@ def is_storage_compatible():
92
100
  return False
93
101
  ################
94
102
 
95
- def generate_compose_config(role, node_name, is_public, node_ip_address="0.0.0.0", num_gpus=0, node_labels=None, pool_ip=None, vpn_token=None, pool_token=None):
103
+ def generate_compose_config(role, node_name, write_to_file=True, node_ip_address="0.0.0.0", num_gpus=0, node_labels=None, pool_ip=None, vpn_token=None, pool_token=None):
96
104
 
97
105
  if node_labels is not None:
98
106
  node_labels = " ".join([f"--node-label {key}={value}" for key, value in node_labels.items()])
@@ -100,7 +108,7 @@ def generate_compose_config(role, node_name, is_public, node_ip_address="0.0.0.0
100
108
  compose_values = {
101
109
  "user_path": user_path(""),
102
110
  "service_name": DEFAULT_CONTAINER_NAME,
103
- "vpn": is_public,
111
+ "vpn": vpn_token is not None,
104
112
  "vpn_name": DEFAULT_VPN_CONTAINER_NAME,
105
113
  "node_ip_address": node_ip_address,
106
114
  "pool_ip": pool_ip,
@@ -113,14 +121,15 @@ def generate_compose_config(role, node_name, is_public, node_ip_address="0.0.0.0
113
121
  "k3s_path": f"{CONTAINER_HOST_PATH}/{rand_suffix}/k3s",
114
122
  "etc_path": f"{CONTAINER_HOST_PATH}/{rand_suffix}/etc",
115
123
  "node_labels": node_labels,
116
- "flannel_iface": DEFAULT_FLANNEL_IFACE if is_public else ""
124
+ "flannel_iface": DEFAULT_FLANNEL_IFACE if vpn_token is not None else ""
117
125
  }
118
126
  # generate local config files
119
127
  compose_yaml = load_template(
120
128
  template_path=DOCKER_COMPOSE_TEMPLATE,
121
129
  values=compose_values)
122
- with open(USER_COMPOSE_FILE, "w") as f:
123
- f.write(compose_yaml)
130
+ if write_to_file:
131
+ with open(USER_COMPOSE_FILE, "w") as f:
132
+ f.write(compose_yaml)
124
133
  return compose_yaml
125
134
 
126
135
  def is_watcher_alive(server_creds, user_cookie, timeout=30):
@@ -146,126 +155,63 @@ def load_server_info(data_key, file):
146
155
  return json.load(f)[data_key]
147
156
  except:
148
157
  return None
149
-
150
- def user_login(user_cookie, username=None, password=None):
151
- auth = KalavaiAuthClient(
152
- user_cookie_file=user_cookie
153
- )
154
- user = auth.load_user_session()
155
- if user is None:
156
- user = auth.login(username=username, password=password)
157
- return user
158
-
159
- def user_logout(user_cookie):
160
- auth = KalavaiAuthClient(
161
- user_cookie_file=user_cookie
162
- )
163
- auth.logout()
164
158
 
165
- def load_user_session(user_cookie):
166
- auth = KalavaiAuthClient(
167
- user_cookie_file=user_cookie
168
- )
169
- if not auth.is_logged_in():
170
- return None
171
- return auth.load_user_session()
159
+ def load_user_session():
160
+ return KALAVAI_AUTH.load_user_session()
172
161
 
173
- def get_public_vpns(user_cookie):
174
- auth = KalavaiAuthClient(
175
- user_cookie_file=user_cookie
176
- )
177
- if not auth.is_logged_in():
178
- raise ValueError("Cannot access vpns, user is not authenticated")
179
- seeds = auth.call_function(
180
- "get_public_vpns"
181
- )
182
- return seeds
162
+ def load_user_id():
163
+ return KALAVAI_AUTH.get_user_id()
183
164
 
184
165
  def get_public_seeds(user_only, user_cookie):
185
- auth = KalavaiAuthClient(
186
- user_cookie_file=user_cookie
187
- )
188
- if not auth.is_logged_in():
189
- raise ValueError("Cannot access vpns, user is not authenticated")
190
- user = auth.load_user_session() if user_only else None
191
- seeds = auth.call_function(
192
- "get_available_seeds",
193
- user
194
- )
195
- return seeds
196
-
197
- def get_vpn_details(location, user_cookie):
198
- auth = KalavaiAuthClient(
199
- user_cookie_file=user_cookie
200
- )
201
- if not auth.is_logged_in():
202
- raise ValueError("Cannot access vpns, user is not authenticated")
203
- vpn = auth.call_function(
204
- "get_vpn_details",
205
- location
206
- )
207
- return vpn
166
+ return []
167
+ # if not auth_obj.is_logged_in():
168
+ # raise ValueError("Cannot access vpns, user is not authenticated")
169
+ # user = auth_obj.load_user_session() if user_only else None
170
+ # seeds = auth_obj.call_function(
171
+ # "get_available_seeds",
172
+ # user
173
+ # )
174
+ # return seeds
208
175
 
209
176
  def register_cluster(name, token, description, user_cookie, is_private=True):
210
- auth = KalavaiAuthClient(
211
- user_cookie_file=user_cookie
212
- )
213
- if not auth.is_logged_in():
214
- raise ValueError("Cannot register cluster, user is not authenticated")
215
- user = auth.load_user_session()
216
- seed = auth.call_function(
217
- "register_seed",
218
- name,
219
- user,
220
- description,
221
- token,
222
- is_private
223
- )
224
- return seed
177
+ return None
178
+ # if not auth_obj.is_logged_in():
179
+ # raise ValueError("Cannot register cluster, user is not authenticated")
180
+ # user = auth_obj.load_user_session()
181
+ # seed = auth_obj.call_function(
182
+ # "register_seed",
183
+ # name,
184
+ # user,
185
+ # description,
186
+ # token,
187
+ # is_private
188
+ # )
189
+ # return seed
225
190
 
226
191
  def unregister_cluster(name, user_cookie):
227
- auth = KalavaiAuthClient(
228
- user_cookie_file=user_cookie
229
- )
230
- if not auth.is_logged_in():
231
- raise ValueError("Cannot unregister cluster, user is not authenticated")
232
- user = auth.load_user_session()
233
- seed = auth.call_function(
234
- "unregister_seed",
235
- name,
236
- user,
237
- )
238
- return seed
239
-
240
- def validate_join_public_seed(cluster_name, join_key, user_cookie):
241
- auth = KalavaiAuthClient(
242
- user_cookie_file=user_cookie
243
- )
244
- if not auth.is_logged_in():
245
- raise ValueError("Cannot notify join cluster, user is not authenticated")
246
- user = auth.load_user_session()
247
- seed = auth.call_function(
248
- "validate_join_public_seed",
249
- cluster_name,
250
- join_key,
251
- user,
252
- )
253
- return seed
192
+ return None
193
+ # if not auth_obj.is_logged_in():
194
+ # raise ValueError("Cannot unregister cluster, user is not authenticated")
195
+ # user = auth_obj.load_user_session()
196
+ # seed = auth_obj.call_function(
197
+ # "unregister_seed",
198
+ # name,
199
+ # user,
200
+ # )
201
+ # return seed
254
202
 
255
203
  def send_pool_invite(cluster_name, invitee_addresses, user_cookie):
256
- auth = KalavaiAuthClient(
257
- user_cookie_file=user_cookie
258
- )
259
- if not auth.is_logged_in():
260
- raise ValueError("Cannot notify join cluster, user is not authenticated")
261
- user = auth.load_user_session()
262
- result = auth.call_function(
263
- "send_pool_invite",
264
- user,
265
- cluster_name,
266
- invitee_addresses
267
- )
268
- return result
204
+ return None
205
+ # if not auth_obj.is_logged_in():
206
+ # raise ValueError("Cannot notify join cluster, user is not authenticated")
207
+ # user = auth_obj.load_user_session()
208
+ # result = auth_obj.call_function(
209
+ # "send_pool_invite",
210
+ # user,
211
+ # cluster_name,
212
+ # invitee_addresses
213
+ # )
214
+ # return result
269
215
 
270
216
  def validate_poolconfig(poolconfig_file):
271
217
  if not Path(poolconfig_file).is_file():
@@ -284,20 +230,6 @@ def run_cmd(command):
284
230
  except OSError as error:
285
231
  return error # for exit code
286
232
 
287
- def join_vpn(location, user_cookie):
288
- vpn = get_vpn_details(location=location, user_cookie=user_cookie)
289
- token = vpn["key"]
290
- if token is None:
291
- raise ValueError(f"VPN location {location} not found or is private")
292
- try:
293
- data = decode_dict(token)
294
- for field in ["server", "value"]:
295
- assert field in data
296
- except:
297
- raise ValueError("Invalid net token")
298
- run_cmd(f"sudo netclient join -t {token} >/dev/null 2>&1")
299
- return vpn
300
-
301
233
  def leave_vpn(container_name):
302
234
  try:
303
235
  vpns = json.loads(run_cmd(f"docker exec {container_name} netclient list").decode())
@@ -332,9 +264,10 @@ def request_to_server(
332
264
  "X-API-KEY": auth_key
333
265
  }
334
266
 
335
- user = load_user_session(user_cookie=user_cookie)
336
267
  headers["USER-KEY"] = load_server_info(data_key=USER_API_KEY, file=server_creds)
337
- headers["USER"] = user["username"] if user is not None else None
268
+ user_id = load_user_id()
269
+ if user_id is not None:
270
+ headers["USER"] = user_id
338
271
 
339
272
  response = requests.request(
340
273
  method=method,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kalavai-client
3
- Version: 0.5.30
3
+ Version: 0.6.1
4
4
  Summary: Client app for kalavai platform
5
5
  License: Apache-2.0
6
6
  Keywords: LLM,platform
@@ -23,7 +23,6 @@ Classifier: Programming Language :: Python :: 3.12
23
23
  Classifier: Programming Language :: Python :: 3.13
24
24
  Provides-Extra: dev
25
25
  Requires-Dist: Pillow (==10.3.0)
26
- Requires-Dist: anvil-uplink (==0.5.1)
27
26
  Requires-Dist: arguably (>=1.2.5)
28
27
  Requires-Dist: build ; extra == "dev"
29
28
  Requires-Dist: fastapi (==0.115.8)
@@ -53,10 +52,10 @@ Description-Content-Type: text/markdown
53
52
 
54
53
  </div>
55
54
 
56
- ⭐⭐⭐ **Kalavai and our LLM pools are open source, and free to use in both commercial and non-commercial purposes. If you find it useful, consider supporting us by [giving a star to our GitHub project](https://github.com/kalavai-net/kalavai-client), joining our [discord channel](https://discord.gg/YN6ThTJKbM), follow our [Substack](https://kalavainet.substack.com/) and give us a [review on Product Hunt](https://www.producthunt.com/products/kalavai/reviews/new).**
55
+ ⭐⭐⭐ **Kalavai and our AI pools are open source, and free to use in both commercial and non-commercial purposes. If you find it useful, consider supporting us by [giving a star to our GitHub project](https://github.com/kalavai-net/kalavai-client), joining our [discord channel](https://discord.gg/YN6ThTJKbM), follow our [Substack](https://kalavainet.substack.com/) and give us a [review on Product Hunt](https://www.producthunt.com/products/kalavai/reviews/new).**
57
56
 
58
57
 
59
- # Kalavai: turn your devices into a scalable LLM platform
58
+ # Kalavai: turn your devices into a scalable AI platform
60
59
 
61
60
  ### Taming the adoption of Large Language Models
62
61
 
@@ -71,7 +70,7 @@ Description-Content-Type: text/markdown
71
70
 
72
71
  ## What can Kalavai do?
73
72
 
74
- Kalavai's goal is to make using LLMs in real applications accessible and affordable to all. It's a _magic box_ that **integrates all the components required to make LLM useful in the age of massive computing**, from sourcing computing power, managing distributed infrastructure and storage, using industry-standard model engines and orchestration of LLMs.
73
+ Kalavai's goal is to make using AI (LLMs, AI agents) in real applications accessible and affordable to all. It's a _magic box_ that **integrates all the components required to make AI useful in the age of massive computing**, from model deployment and orchestration to Agentic AI.
75
74
 
76
75
  ### Core features
77
76
 
@@ -86,18 +85,6 @@ Kalavai's goal is to make using LLMs in real applications accessible and afforda
86
85
 
87
86
  **<summary>Video tutorials</summary>**
88
87
 
89
- ### Aggregate multiple devices in an LLM pool
90
-
91
- https://github.com/user-attachments/assets/4be59886-1b76-4400-ab5c-c803e3e414ec
92
-
93
- ### Deploy LLMs across the pool
94
-
95
- https://github.com/user-attachments/assets/ea57a2ab-3924-4097-be2a-504e0988fbb1
96
-
97
- ### Single point of entry for all models (GUI + API)
98
-
99
- https://github.com/user-attachments/assets/7df73bbc-d129-46aa-8ce5-0735177dedeb
100
-
101
88
  ### Self-hosted LLM pools
102
89
 
103
90
  https://github.com/user-attachments/assets/0d2316f3-79ea-46ac-b41e-8ef720f52672
@@ -211,7 +198,7 @@ pip install kalavai-client
211
198
  ```
212
199
 
213
200
 
214
- ## Create a a local, private LLM pool
201
+ ## Create a a local, private AI pool
215
202
 
216
203
  > Kalavai is **free to use, no caps, for both commercial and non-commercial purposes**. All you need to get started is one or more computers that can see each other (i.e. within the same network), and you are good to go. If you are interested in join computers in different locations / networks, [contact us](mailto:info@kalavai.net) or [book a demo](https://app.onecal.io/b/kalavai/book-a-demo) with the founders.
217
204
 
@@ -228,13 +215,6 @@ This will expose the GUI and the backend services in localhost. By default, the
228
215
  Check out our [getting started guide](https://kalavai-net.github.io/kalavai-client/getting_started/) for next steps.
229
216
 
230
217
 
231
- ## Public LLM pools: crowdsource community resources
232
-
233
- This is the **easiest and most powerful** way to experience Kalavai. It affords users the full resource capabilities of the community and access to all its deployed LLMs, via an [OpenAI-compatible endpoint](https://kalavai-net.github.io/kalavai-client/public_llm_pool/#single-api-endpoint) as well as a [UI-based playground](https://kalavai-net.github.io/kalavai-client/public_llm_pool/#ui-playground).
234
-
235
- Check out [our guide](https://kalavai-net.github.io/kalavai-client/public_llm_pool/) on how to join and start deploying LLMs.
236
-
237
-
238
218
  ## Enough already, let's run stuff!
239
219
 
240
220
  Check our [examples](examples/) to put your new AI pool to good use! For an end to end tour, check our [self-hosted](https://kalavai-net.github.io/kalavai-client/self_hosted_llm_pool/) and [public LLM pools](https://kalavai-net.github.io/kalavai-client/public_llm_pool/) guides.
@@ -268,7 +248,6 @@ The kalavai client, which controls and access pools, can be installed on any mac
268
248
  - [x] Kalavai client on Linux
269
249
  - [x] [TEMPLATE] Distributed LLM deployment
270
250
  - [x] Kalavai client on Windows (with WSL2)
271
- - [x] Public LLM pools
272
251
  - [x] Self-hosted LLM pools
273
252
  - [x] Collaborative LLM deployment
274
253
  - [x] Ray cluster support
@@ -308,7 +287,7 @@ Python version >= 3.6.
308
287
  ```bash
309
288
  sudo add-apt-repository ppa:deadsnakes/ppa
310
289
  sudo apt update
311
- sudo apt install python3.10 python3.10-dev python3-virtualenv
290
+ sudo apt install python3.10 python3.10-dev python3-virtualenv python3-venv
312
291
  virtualenv -p python3.10 env
313
292
  source env/bin/activate
314
293
  sudo apt install python3.10-venv python3.10-dev -y
@@ -0,0 +1,25 @@
1
+ kalavai_client/__init__.py,sha256=RUEIQh8z_V_kGKsMyzH8WJLz-dW7GvzomrpPti1qfDw,22
2
+ kalavai_client/__main__.py,sha256=WQUfxvRsBJH5gsCJg8pLz95QnZIj7Ol8psTO77m0QE0,73
3
+ kalavai_client/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ kalavai_client/assets/apps.yaml,sha256=H2HZQ_oqdNz2qPDs5_NtHvJo4rblH1DRPugzQYq_t5Q,6366
5
+ kalavai_client/assets/apps_values.yaml,sha256=WRew3bS1MztjzcJfphuJcKn0n2T1ICRupPpr_Csjt_s,1644
6
+ kalavai_client/assets/docker-compose-gui.yaml,sha256=IHClIltiu8C4nHbgDgAscf3Ls6UFngbeQP07kj31kjM,776
7
+ kalavai_client/assets/docker-compose-template.yaml,sha256=uct7xmXtO1XgNimdirSiQusb-RYsPbnL67TVkj2oWrU,2772
8
+ kalavai_client/assets/nginx.conf,sha256=drVVCg8GHucz7hmt_BI6giAhK92OV71257NTs3LthwM,225
9
+ kalavai_client/assets/pool_config_template.yaml,sha256=fFz4w2-fMKD5KvyzFdfcWD_jSneRlmnjLc8hCctweX0,576
10
+ kalavai_client/assets/pool_config_values.yaml,sha256=VrM3XHQfQo6QLZ68qvagooUptaYgl1pszniY_JUtemk,233
11
+ kalavai_client/assets/user_workspace.yaml,sha256=wDvlMYknOPABAEo0dsQwU7bac8iubjAG9tdkFbJZ5Go,476
12
+ kalavai_client/assets/user_workspace_values.yaml,sha256=G0HOzQUxrDMCwuW9kbWUZaKMzDDPVwDwzBHCL2Xi2ZM,542
13
+ kalavai_client/auth.py,sha256=EB3PMvKUn5_KAQkezkEHEt-OMZXyfkZguIQlUFkEHcA,3243
14
+ kalavai_client/bridge_api.py,sha256=IkKq_CODA4p4UJkk6UqXKHkz5m2ESq2mL3tKqkQk6T0,6910
15
+ kalavai_client/bridge_models.py,sha256=k4ILxa8jfAcfgIIBJqK1DunDzHh_oNUpuiEpmhAfTP0,977
16
+ kalavai_client/cli.py,sha256=TUZJDmHdpBnF7Po-rnI97S1VYDPWxde1JqaHtb9xlIQ,46996
17
+ kalavai_client/cluster.py,sha256=gwjmdsd--YrffT0BmZDOEpbrdm3lPskUuN5jdgcrOR0,12947
18
+ kalavai_client/core.py,sha256=CWJQ38BZ2mLavfOCyR7wsDdy4fRTpjnYmggoXcR9Ji8,32531
19
+ kalavai_client/env.py,sha256=J-9_YopIIVBCnwTFxoQ9jq8JWUDdKrB__S-Wig6TWSU,2767
20
+ kalavai_client/utils.py,sha256=k2Bpvl16zDpWBXMIMsd_LbkinZtctPO6bygfB7DyiZ8,12018
21
+ kalavai_client-0.6.1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
22
+ kalavai_client-0.6.1.dist-info/METADATA,sha256=0VhOSaYS1GdoXSE0w_YNYjfjiXHZ57SiLe3IRVJ7Sz4,13353
23
+ kalavai_client-0.6.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
24
+ kalavai_client-0.6.1.dist-info/entry_points.txt,sha256=9T6D45gxwzfVbglMm1r6XPdXuuZdHfy_7fCeu2jUphc,50
25
+ kalavai_client-0.6.1.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.1
2
+ Generator: poetry-core 2.1.2
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,25 +0,0 @@
1
- kalavai_client/__init__.py,sha256=ROmnKI7L1DQjR4ddCvAjjSIbyHpDByVfi5X4UwPtjws,23
2
- kalavai_client/__main__.py,sha256=WQUfxvRsBJH5gsCJg8pLz95QnZIj7Ol8psTO77m0QE0,73
3
- kalavai_client/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- kalavai_client/assets/apps.yaml,sha256=XahTRpFiaUG3jJGAzokWnNkaVnoogjxHVXBw2kSrwq8,6304
5
- kalavai_client/assets/apps_values.yaml,sha256=CjKVelPQHd-hm-DTMEuya92feKiphU9mh3HrosLYYPE,1676
6
- kalavai_client/assets/docker-compose-gui.yaml,sha256=6OHZIDDTl_PwXSYo1d05JasWfT0iiUDhrja0nQDjrlw,692
7
- kalavai_client/assets/docker-compose-template.yaml,sha256=ii24Nn-dM5cZk9lxFgrzxnmK7yv_6kIIw7KUlWhvYeI,2831
8
- kalavai_client/assets/nginx.conf,sha256=drVVCg8GHucz7hmt_BI6giAhK92OV71257NTs3LthwM,225
9
- kalavai_client/assets/pool_config_template.yaml,sha256=fFz4w2-fMKD5KvyzFdfcWD_jSneRlmnjLc8hCctweX0,576
10
- kalavai_client/assets/pool_config_values.yaml,sha256=VrM3XHQfQo6QLZ68qvagooUptaYgl1pszniY_JUtemk,233
11
- kalavai_client/assets/user_workspace.yaml,sha256=wDvlMYknOPABAEo0dsQwU7bac8iubjAG9tdkFbJZ5Go,476
12
- kalavai_client/assets/user_workspace_values.yaml,sha256=G0HOzQUxrDMCwuW9kbWUZaKMzDDPVwDwzBHCL2Xi2ZM,542
13
- kalavai_client/auth.py,sha256=QsBh28L2LwjBBK6pTUE4Xu36lLDTyetyU1YfS1Hbb6g,1717
14
- kalavai_client/bridge_api.py,sha256=xBd3KGoDcruuo53uNWOwA30CIPYgQLX8IkJWJgNHq9s,5546
15
- kalavai_client/bridge_models.py,sha256=k4ILxa8jfAcfgIIBJqK1DunDzHh_oNUpuiEpmhAfTP0,977
16
- kalavai_client/cli.py,sha256=MNmn8DgnEuyaCV8cMqr17JvfjalHcrP5Udpjn2jVXp8,46713
17
- kalavai_client/cluster.py,sha256=gwjmdsd--YrffT0BmZDOEpbrdm3lPskUuN5jdgcrOR0,12947
18
- kalavai_client/core.py,sha256=m5FOPzix8oNBlLqgllgJ0PwLXxo-s438fjJ0FPRVIZs,33266
19
- kalavai_client/env.py,sha256=Zg2pP-xGJpQumo56KMBxBLgIsBmcNN0S9R-ZP2-s630,2604
20
- kalavai_client/utils.py,sha256=OPmrsycNyrs2ZpTsjAzBuPN8hQNJtsYDLPKU13tnf-U,13862
21
- kalavai_client-0.5.30.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
22
- kalavai_client-0.5.30.dist-info/METADATA,sha256=Fi8DEzalDmDoASySWKmqIMx4A1DPLrWE8AO_lBtRml0,14443
23
- kalavai_client-0.5.30.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
24
- kalavai_client-0.5.30.dist-info/entry_points.txt,sha256=9T6D45gxwzfVbglMm1r6XPdXuuZdHfy_7fCeu2jUphc,50
25
- kalavai_client-0.5.30.dist-info/RECORD,,