blaxel 0.1.9rc37__py3-none-any.whl → 0.1.10rc38__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.
- blaxel/authentication/__init__.py +11 -2
- blaxel/authentication/devicemode.py +1 -0
- blaxel/common/autoload.py +1 -0
- blaxel/common/internal.py +5 -5
- blaxel/sandbox/base.py +68 -0
- blaxel/sandbox/client/__init__.py +8 -0
- blaxel/sandbox/client/api/__init__.py +1 -0
- blaxel/sandbox/client/api/filesystem/__init__.py +0 -0
- blaxel/sandbox/client/api/filesystem/delete_filesystem_path.py +184 -0
- blaxel/sandbox/client/api/filesystem/get_filesystem_path.py +184 -0
- blaxel/sandbox/client/api/filesystem/put_filesystem_path.py +189 -0
- blaxel/sandbox/client/api/network/__init__.py +0 -0
- blaxel/sandbox/client/api/network/delete_network_process_pid_monitor.py +169 -0
- blaxel/sandbox/client/api/network/get_network_process_pid_ports.py +169 -0
- blaxel/sandbox/client/api/network/post_network_process_pid_monitor.py +195 -0
- blaxel/sandbox/client/api/process/__init__.py +0 -0
- blaxel/sandbox/client/api/process/delete_process_identifier.py +163 -0
- blaxel/sandbox/client/api/process/delete_process_identifier_kill.py +189 -0
- blaxel/sandbox/client/api/process/get_process.py +135 -0
- blaxel/sandbox/client/api/process/get_process_identifier.py +159 -0
- blaxel/sandbox/client/api/process/get_process_identifier_logs.py +167 -0
- blaxel/sandbox/client/api/process/post_process.py +176 -0
- blaxel/sandbox/client/client.py +162 -0
- blaxel/sandbox/client/errors.py +16 -0
- blaxel/sandbox/client/models/__init__.py +35 -0
- blaxel/sandbox/client/models/delete_network_process_pid_monitor_response_200.py +45 -0
- blaxel/sandbox/client/models/directory.py +110 -0
- blaxel/sandbox/client/models/error_response.py +60 -0
- blaxel/sandbox/client/models/file.py +105 -0
- blaxel/sandbox/client/models/file_request.py +78 -0
- blaxel/sandbox/client/models/file_with_content.py +114 -0
- blaxel/sandbox/client/models/get_network_process_pid_ports_response_200.py +45 -0
- blaxel/sandbox/client/models/get_process_identifier_logs_response_200.py +45 -0
- blaxel/sandbox/client/models/port_monitor_request.py +60 -0
- blaxel/sandbox/client/models/post_network_process_pid_monitor_response_200.py +45 -0
- blaxel/sandbox/client/models/process_kill_request.py +60 -0
- blaxel/sandbox/client/models/process_request.py +118 -0
- blaxel/sandbox/client/models/process_response.py +123 -0
- blaxel/sandbox/client/models/success_response.py +69 -0
- blaxel/sandbox/client/py.typed +1 -0
- blaxel/sandbox/client/types.py +46 -0
- blaxel/sandbox/filesystem.py +102 -0
- blaxel/sandbox/process.py +57 -0
- blaxel/sandbox/sandbox.py +92 -0
- blaxel/tools/__init__.py +1 -1
- {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/METADATA +1 -1
- {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/RECORD +49 -9
- {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/WHEEL +0 -0
- {blaxel-0.1.9rc37.dist-info → blaxel-0.1.10rc38.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,92 @@
|
|
1
|
+
import asyncio
|
2
|
+
import logging
|
3
|
+
import time
|
4
|
+
from typing import List
|
5
|
+
|
6
|
+
from ..client.api.compute.create_sandbox import asyncio as create_sandbox
|
7
|
+
from ..client.api.compute.delete_sandbox import asyncio as delete_sandbox
|
8
|
+
from ..client.api.compute.get_sandbox import asyncio as get_sandbox
|
9
|
+
from ..client.api.compute.list_sandboxes import asyncio as list_sandboxes
|
10
|
+
from ..client.client import client
|
11
|
+
from ..client.models import Sandbox
|
12
|
+
from .filesystem import SandboxFileSystem
|
13
|
+
from .process import SandboxProcess
|
14
|
+
|
15
|
+
logger = logging.getLogger(__name__)
|
16
|
+
|
17
|
+
class SandboxInstance:
|
18
|
+
def __init__(self, sandbox: Sandbox):
|
19
|
+
self.sandbox = sandbox
|
20
|
+
self.fs = SandboxFileSystem(sandbox)
|
21
|
+
self.process = SandboxProcess(sandbox)
|
22
|
+
|
23
|
+
@property
|
24
|
+
def metadata(self):
|
25
|
+
return self.sandbox.metadata
|
26
|
+
|
27
|
+
@property
|
28
|
+
def status(self):
|
29
|
+
return self.sandbox.status
|
30
|
+
|
31
|
+
@property
|
32
|
+
def events(self):
|
33
|
+
return self.sandbox.events
|
34
|
+
|
35
|
+
@property
|
36
|
+
def spec(self):
|
37
|
+
return self.sandbox.spec
|
38
|
+
|
39
|
+
async def wait(self, max_wait: int = 60000, interval: int = 1000) -> None:
|
40
|
+
start_time = time.time() * 1000 # Convert to milliseconds
|
41
|
+
while self.sandbox.status != "DEPLOYED":
|
42
|
+
await asyncio.sleep(interval / 1000) # Convert to seconds
|
43
|
+
try:
|
44
|
+
response = await get_sandbox(
|
45
|
+
self.sandbox.metadata.name,
|
46
|
+
client=client,
|
47
|
+
)
|
48
|
+
logger.info(f"Waiting for sandbox to be deployed, status: {response.status}")
|
49
|
+
self.sandbox = response
|
50
|
+
except Exception as e:
|
51
|
+
logger.error("Could not retrieve sandbox", exc_info=e)
|
52
|
+
|
53
|
+
if self.sandbox.status == "FAILED":
|
54
|
+
raise Exception("Sandbox failed to deploy")
|
55
|
+
|
56
|
+
if (time.time() * 1000) - start_time > max_wait:
|
57
|
+
raise Exception("Sandbox did not deploy in time")
|
58
|
+
|
59
|
+
@classmethod
|
60
|
+
async def create(cls, sandbox: Sandbox) -> "SandboxInstance":
|
61
|
+
if not sandbox.spec:
|
62
|
+
raise Exception("Sandbox spec is required")
|
63
|
+
if not sandbox.spec.runtime:
|
64
|
+
raise Exception("Sandbox runtime is required")
|
65
|
+
sandbox.spec.runtime.generation = sandbox.spec.runtime.generation or "mk3"
|
66
|
+
|
67
|
+
response = await create_sandbox(
|
68
|
+
client=client,
|
69
|
+
body=sandbox,
|
70
|
+
)
|
71
|
+
return cls(response)
|
72
|
+
|
73
|
+
@classmethod
|
74
|
+
async def get(cls, sandbox_name: str) -> "SandboxInstance":
|
75
|
+
response = await get_sandbox(
|
76
|
+
sandbox_name,
|
77
|
+
client=client,
|
78
|
+
)
|
79
|
+
return cls(response)
|
80
|
+
|
81
|
+
@classmethod
|
82
|
+
async def list(cls) -> List["SandboxInstance"]:
|
83
|
+
response = await list_sandboxes()
|
84
|
+
return [cls(sandbox) for sandbox in response]
|
85
|
+
|
86
|
+
@classmethod
|
87
|
+
async def delete(cls, sandbox_name: str) -> Sandbox:
|
88
|
+
response = await delete_sandbox(
|
89
|
+
sandbox_name,
|
90
|
+
client=client,
|
91
|
+
)
|
92
|
+
return response
|
blaxel/tools/__init__.py
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
blaxel/__init__.py,sha256=qmuJKjl5oGnjj4TbqHcJqUkKoxk4PvCsMb6-8rp67pE,159
|
2
2
|
blaxel/agents/__init__.py,sha256=RDWkvfICIXXaQxJuuSu63jsFj_F8NBAL4U752hfN4AE,5262
|
3
|
-
blaxel/authentication/__init__.py,sha256=
|
3
|
+
blaxel/authentication/__init__.py,sha256=tL9XKNCek5ixszTqjlKRBvidXMg4Nj6ODlBKlxxA9uk,3283
|
4
4
|
blaxel/authentication/apikey.py,sha256=nOgLVba7EfVk3V-qm7cj-30LAL-BT7NOMIlGL9Ni1jY,1249
|
5
5
|
blaxel/authentication/clientcredentials.py,sha256=SfWNuZVHZw6jjMqoBMMB4ZawmpyKbVPbOpv-JDFqzw8,3080
|
6
|
-
blaxel/authentication/devicemode.py,sha256=
|
6
|
+
blaxel/authentication/devicemode.py,sha256=JorMjo1JNbZ2sWw-cQaNG_909mdCB1Km3nzjmTdFHgs,6024
|
7
7
|
blaxel/authentication/oauth.py,sha256=Q5J0taIK1JrvGB6BC-zz3hM77HPCNu01DPGf4l7xjPQ,1417
|
8
8
|
blaxel/authentication/types.py,sha256=E3lmfbmZuJ4Bc_kGA0Kc0GZC02Sjha1_2CbabP7z6oo,1603
|
9
9
|
blaxel/cache/__init__.py,sha256=i655Ah-0hOKBQXBxLlnnMgK89GHQaOonY30Tv7tKQ04,66
|
@@ -236,9 +236,9 @@ blaxel/client/models/workspace.py,sha256=K_xs5Z6qFVgw6ShzaSBtTLIdltcpfu1Op422IA2
|
|
236
236
|
blaxel/client/models/workspace_labels.py,sha256=WbnUY6eCTkUNdY7hhhSF-KQCl8fWFfkCf7hzCTiNp4A,1246
|
237
237
|
blaxel/client/models/workspace_runtime.py,sha256=dxEpmwCFPOCRKHRKhY-iW7j6TbtL5qUsbjzSn00uTXU,1665
|
238
238
|
blaxel/client/models/workspace_user.py,sha256=70CcifQWYbeWG7TDui4pblTzUe5sVK0AS19vNCzKE8g,3423
|
239
|
-
blaxel/common/autoload.py,sha256=
|
239
|
+
blaxel/common/autoload.py,sha256=NFuK71-IHOY2JQyEBSjDCVfUaQ8D8PJsEUEryIdG4AU,263
|
240
240
|
blaxel/common/env.py,sha256=wTbzPDdNgz4HMJiS2NCZmQlN0qpxy1PQEYBaZgtvhoc,1247
|
241
|
-
blaxel/common/internal.py,sha256=
|
241
|
+
blaxel/common/internal.py,sha256=J-etgnBzelb-ln8uBR9WIWzrEUyDds8rdT9FImjes9g,2390
|
242
242
|
blaxel/common/logger.py,sha256=emqgonfZMBIaQPowpngWOOZxWQieKP-yj_OzGZT8Oe8,1918
|
243
243
|
blaxel/common/settings.py,sha256=X0g0_hIR19qfjSeWNf8qraxb_UTSbYukVHJeRHKLTn8,2138
|
244
244
|
blaxel/instrumentation/exporters.py,sha256=EoX3uaBVku1Rg49pSNXKFyHhgY5OV3Ih6UlqgjF5epw,1670
|
@@ -260,7 +260,47 @@ blaxel/models/pydantic.py,sha256=4_z2KtaeEiRMt_Zz6Ghy6il-QiaXzE3yizDJnCBcWO8,332
|
|
260
260
|
blaxel/models/custom/langchain/gemini.py,sha256=AkhpuVMXnh1CyJ0zR2NMTtxQFPPHtAdHf_cyNzV3EsA,55421
|
261
261
|
blaxel/models/custom/llamaindex/cohere.py,sha256=Igj5Y1ozf1V4feIXfBHDdaTFU7od_wuOhm0yChZNxMY,19109
|
262
262
|
blaxel/models/custom/pydantic/gemini.py,sha256=rbsunh-M7EEKlD5ir3GlA-8a12JzPFcvsf6NISjzE5I,1052
|
263
|
-
blaxel/
|
263
|
+
blaxel/sandbox/base.py,sha256=Ps1RvasF1MB8h0-XRz3Sxz7UGjpAPaI6pvrfonUckHo,2106
|
264
|
+
blaxel/sandbox/filesystem.py,sha256=vBeKUp1s3Gp1vD6pccg0MDwEolz_j6S-9Bfi7WD0gxQ,4604
|
265
|
+
blaxel/sandbox/process.py,sha256=EWI6UctxdWo4Vd4VUSilABJME3g3x3ceuSuBN2mDfhM,2519
|
266
|
+
blaxel/sandbox/sandbox.py,sha256=meRE_iUx1dvlav-RIBdzQLrrHE_efBTtcbq-u9_mId4,2992
|
267
|
+
blaxel/sandbox/client/__init__.py,sha256=N26bD5o1jsTb48oExow6Rgivd8ylaU9jaWZfZsVilP8,128
|
268
|
+
blaxel/sandbox/client/client.py,sha256=tcP8cJ4Q3dV9aB3yQ01dDXO-ekfsa3WGGFz4DQAEf8I,7079
|
269
|
+
blaxel/sandbox/client/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
|
270
|
+
blaxel/sandbox/client/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
|
271
|
+
blaxel/sandbox/client/types.py,sha256=E1hhDh_zXfsSQ0NCt9-uw90_Mr5iIlsdfnfvxv5HarU,1005
|
272
|
+
blaxel/sandbox/client/api/__init__.py,sha256=zTSiG_ujSjAqWPyc435YXaX9XTlpMjiJWBbV-f-YtdA,45
|
273
|
+
blaxel/sandbox/client/api/filesystem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
274
|
+
blaxel/sandbox/client/api/filesystem/delete_filesystem_path.py,sha256=PVm-a_nacy6QQb6mh_HIDx-JkiFYeUOypHZq0AtE6dA,4782
|
275
|
+
blaxel/sandbox/client/api/filesystem/get_filesystem_path.py,sha256=Hp8pM8xvi5zAjO5xujAbKxALUBJHH-JdyvWIEJ8dHo0,5010
|
276
|
+
blaxel/sandbox/client/api/filesystem/put_filesystem_path.py,sha256=GIqwjevow7sRw5Po9iraYY1Yl5UXqgv2pjUw9nle97E,4759
|
277
|
+
blaxel/sandbox/client/api/network/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
278
|
+
blaxel/sandbox/client/api/network/delete_network_process_pid_monitor.py,sha256=nhQe7a4PqBhFQ6pZxSPilcvg-tt3jP0tmuX3Po8bd9g,4581
|
279
|
+
blaxel/sandbox/client/api/network/get_network_process_pid_ports.py,sha256=2lsDR78DMqJChOHe84JCy2iTHGIEDnzDArm4SMnt3JY,4455
|
280
|
+
blaxel/sandbox/client/api/network/post_network_process_pid_monitor.py,sha256=3sUYnFyMwpypQfLBZvIcFB9v8RrhNIMOKGb1uM15pzU,5235
|
281
|
+
blaxel/sandbox/client/api/process/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
282
|
+
blaxel/sandbox/client/api/process/delete_process_identifier.py,sha256=7ihlG9_R7p-sbw_4h93cnOyBGYhiWfFtpsjY6z9P7iQ,4179
|
283
|
+
blaxel/sandbox/client/api/process/delete_process_identifier_kill.py,sha256=1x_KMc7uJD_fap8uoTmZkWIDTgLJKmCTGcOP1Mr6X1E,4858
|
284
|
+
blaxel/sandbox/client/api/process/get_process.py,sha256=XWf_hNFZLkS14eWjBjir22QwdtV313_llrQGExJ7lZo,3588
|
285
|
+
blaxel/sandbox/client/api/process/get_process_identifier.py,sha256=OqmxuKKHDGX6rwS0Mavn6nnL0X_7AasPUdS5RS04URc,4159
|
286
|
+
blaxel/sandbox/client/api/process/get_process_identifier_logs.py,sha256=m34pQjMLpEUJsqkjEh0OafdNaMbDhR0NhzaJ1jWLJVk,4513
|
287
|
+
blaxel/sandbox/client/api/process/post_process.py,sha256=cemvWEtrZ24RBx3QHusE9Al_yrgQip9nBSkaQhSGUkI,4527
|
288
|
+
blaxel/sandbox/client/models/__init__.py,sha256=KiSEopbp_UpGTz_3kcRG_XDd7Vfcn3LbOAmj8Ex-PFs,1288
|
289
|
+
blaxel/sandbox/client/models/delete_network_process_pid_monitor_response_200.py,sha256=9cQgKDjG98sMridjXKgeR2oZzFKcQ0G9QIojhwYFosI,1376
|
290
|
+
blaxel/sandbox/client/models/directory.py,sha256=pHJ2lX4IjuMIdZSkb7plmzPsmALP3EwUymfH0Ra4YgA,3482
|
291
|
+
blaxel/sandbox/client/models/error_response.py,sha256=lI15zKBoD2X9yHzSiEaYGUn5TPTxWM7j1Tu5crtd23M,1581
|
292
|
+
blaxel/sandbox/client/models/file.py,sha256=-SwKgrzbXfPQfxhAp2S_P8On-vT5Ac4Q-ODKRdwdsts,2835
|
293
|
+
blaxel/sandbox/client/models/file_request.py,sha256=xOZSru-fae-En-_2YBgkHa_6iGbqbJsG3RLqBuajVY0,2227
|
294
|
+
blaxel/sandbox/client/models/file_with_content.py,sha256=CGRXhUrrYtLAxQIsJi01kFUVAt1Bkj2tFUalULLA77Q,3153
|
295
|
+
blaxel/sandbox/client/models/get_network_process_pid_ports_response_200.py,sha256=x4uv80kK0GVroWO98l5sE84a6uwZ8pnUKTpGg81ipWA,1351
|
296
|
+
blaxel/sandbox/client/models/get_process_identifier_logs_response_200.py,sha256=pEs9vxD29oxrojOgeyppXXmFVvem7beWzm5_i4TkgDc,1343
|
297
|
+
blaxel/sandbox/client/models/port_monitor_request.py,sha256=LK7sjAK1TF1ojgG4vGytaKLVtV6-SNXxfZ3sxew1cRE,1698
|
298
|
+
blaxel/sandbox/client/models/post_network_process_pid_monitor_response_200.py,sha256=Y8BvNGKU8SlzTGqhaQZk_WWIrmFpNU0LVcmLFjNvqhA,1366
|
299
|
+
blaxel/sandbox/client/models/process_kill_request.py,sha256=TqhuOmVPm_yKZj52YFv3yyu2UA8eVgXEio4sgCVAR-0,1614
|
300
|
+
blaxel/sandbox/client/models/process_request.py,sha256=FGWl2SnuHdBY-8t_YatpKwYCUfA3LMHt8RnU0hjPcLc,3598
|
301
|
+
blaxel/sandbox/client/models/process_response.py,sha256=WMfxuNTrL5wo5QT7HOR4_CTyf9XztO5cPvmtlHMdNd8,3624
|
302
|
+
blaxel/sandbox/client/models/success_response.py,sha256=JQbCUIdVJy_TJ3mp8IuvCGbKgCm_iZQMMrqn8uZkxCk,1874
|
303
|
+
blaxel/tools/__init__.py,sha256=4lzqDt0FNWcO8L0DkFzY1KTHLNtgEux66id4Psq7sXY,11520
|
264
304
|
blaxel/tools/common.py,sha256=JGK052v_fvwWBFYnIArlBnFFViYyFrqdDn3gdVf53EU,1332
|
265
305
|
blaxel/tools/crewai.py,sha256=rPrRGwkXejunJQ6In1IsYAxJPNbr6d9EckXrSIHQods,638
|
266
306
|
blaxel/tools/googleadk.py,sha256=65qJysecgAMujxsyGxuCEVL0fWoR5I489DMiSA3ZaGs,2265
|
@@ -270,7 +310,7 @@ blaxel/tools/llamaindex.py,sha256=-gQ-C9V_h9a11J4ItsbWjXrCJOg0lRKsb98v9rVsNak,71
|
|
270
310
|
blaxel/tools/openai.py,sha256=GuFXkj6bXEwldyVr89jEsRAi5ihZUVEVe327QuWiGNs,653
|
271
311
|
blaxel/tools/pydantic.py,sha256=CvnNbAG_J4yBtA-XFI4lQrq3FYKjNd39hu841vZT004,1801
|
272
312
|
blaxel/tools/types.py,sha256=YPCGJ4vZDhqR0X2H_TWtc5chQScsC32nGTQdRKJlO8Y,707
|
273
|
-
blaxel-0.1.
|
274
|
-
blaxel-0.1.
|
275
|
-
blaxel-0.1.
|
276
|
-
blaxel-0.1.
|
313
|
+
blaxel-0.1.10rc38.dist-info/METADATA,sha256=TAXdNIA59FvIxgNACgKP6H9JXvpOFT37sWICNAnhVSA,11607
|
314
|
+
blaxel-0.1.10rc38.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
315
|
+
blaxel-0.1.10rc38.dist-info/licenses/LICENSE,sha256=p5PNQvpvyDT_0aYBDgmV1fFI_vAD2aSV0wWG7VTgRis,1069
|
316
|
+
blaxel-0.1.10rc38.dist-info/RECORD,,
|
File without changes
|
File without changes
|