scalebox-sdk 0.1.24__py3-none-any.whl → 1.0.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.
Files changed (87) hide show
  1. scalebox/__init__.py +2 -2
  2. scalebox/api/__init__.py +130 -128
  3. scalebox/api/client/__init__.py +8 -8
  4. scalebox/api/client/api/sandboxes/get_sandboxes_sandbox_id_metrics.py +2 -2
  5. scalebox/api/client/api/sandboxes/post_sandboxes.py +2 -2
  6. scalebox/api/client/api/sandboxes/post_sandboxes_sandbox_id_connect.py +193 -0
  7. scalebox/api/client/client.py +288 -288
  8. scalebox/api/client/models/connect_sandbox.py +59 -0
  9. scalebox/api/client/models/error.py +2 -2
  10. scalebox/api/client/models/listed_sandbox.py +19 -1
  11. scalebox/api/client/models/new_sandbox.py +10 -0
  12. scalebox/api/client/models/sandbox.py +138 -125
  13. scalebox/api/client/models/sandbox_detail.py +24 -0
  14. scalebox/api/client/types.py +46 -46
  15. scalebox/cli.py +125 -125
  16. scalebox/client/aclient.py +57 -57
  17. scalebox/client/client.py +102 -102
  18. scalebox/code_interpreter/__init__.py +12 -12
  19. scalebox/code_interpreter/charts.py +230 -230
  20. scalebox/code_interpreter/constants.py +3 -3
  21. scalebox/code_interpreter/exceptions.py +13 -13
  22. scalebox/code_interpreter/models.py +485 -485
  23. scalebox/connection_config.py +34 -1
  24. scalebox/csx_connect/__init__.py +1 -1
  25. scalebox/csx_connect/client.py +485 -485
  26. scalebox/csx_desktop/main.py +651 -651
  27. scalebox/exceptions.py +83 -83
  28. scalebox/generated/api.py +61 -61
  29. scalebox/generated/api_pb2.py +203 -203
  30. scalebox/generated/api_pb2.pyi +956 -956
  31. scalebox/generated/api_pb2_connect.py +1407 -1407
  32. scalebox/generated/rpc.py +50 -50
  33. scalebox/sandbox/main.py +146 -139
  34. scalebox/sandbox/sandbox_api.py +105 -91
  35. scalebox/sandbox/signature.py +40 -40
  36. scalebox/sandbox/utils.py +34 -34
  37. scalebox/sandbox_async/commands/command.py +307 -307
  38. scalebox/sandbox_async/commands/command_handle.py +187 -187
  39. scalebox/sandbox_async/commands/pty.py +187 -187
  40. scalebox/sandbox_async/filesystem/filesystem.py +557 -557
  41. scalebox/sandbox_async/filesystem/watch_handle.py +61 -61
  42. scalebox/sandbox_async/main.py +228 -46
  43. scalebox/sandbox_async/sandbox_api.py +124 -3
  44. scalebox/sandbox_async/utils.py +7 -7
  45. scalebox/sandbox_sync/__init__.py +2 -2
  46. scalebox/sandbox_sync/commands/command.py +300 -300
  47. scalebox/sandbox_sync/commands/command_handle.py +150 -150
  48. scalebox/sandbox_sync/commands/pty.py +181 -181
  49. scalebox/sandbox_sync/filesystem/filesystem.py +3 -3
  50. scalebox/sandbox_sync/filesystem/watch_handle.py +66 -66
  51. scalebox/sandbox_sync/main.py +208 -133
  52. scalebox/sandbox_sync/sandbox_api.py +119 -3
  53. scalebox/test/CODE_INTERPRETER_TESTS_READY.md +323 -323
  54. scalebox/test/README.md +329 -329
  55. scalebox/test/bedrock_openai_adapter.py +67 -0
  56. scalebox/test/code_interpreter_test.py +34 -34
  57. scalebox/test/code_interpreter_test_sync.py +34 -34
  58. scalebox/test/run_stress_code_interpreter_sync.py +166 -0
  59. scalebox/test/simple_upload_example.py +123 -0
  60. scalebox/test/stabitiy_test.py +310 -0
  61. scalebox/test/test_browser_use.py +25 -0
  62. scalebox/test/test_browser_use_scalebox.py +61 -0
  63. scalebox/test/test_code_interpreter_sync_comprehensive.py +115 -65
  64. scalebox/test/test_connect_pause_async.py +277 -0
  65. scalebox/test/test_connect_pause_sync.py +267 -0
  66. scalebox/test/test_desktop_sandbox_sf.py +117 -0
  67. scalebox/test/test_download_url.py +49 -0
  68. scalebox/test/test_sandbox_async_comprehensive.py +1 -1
  69. scalebox/test/test_sandbox_object_storage_example.py +146 -0
  70. scalebox/test/test_sandbox_object_storage_example_async.py +156 -0
  71. scalebox/test/test_sf.py +137 -0
  72. scalebox/test/test_watch_dir_async.py +56 -0
  73. scalebox/test/testacreate.py +1 -1
  74. scalebox/test/testagetinfo.py +1 -1
  75. scalebox/test/testcomputeuse.py +243 -243
  76. scalebox/test/testsandbox_api.py +13 -0
  77. scalebox/test/testsandbox_sync.py +1 -1
  78. scalebox/test/upload_100mb_example.py +355 -0
  79. scalebox/utils/httpcoreclient.py +297 -297
  80. scalebox/utils/httpxclient.py +403 -403
  81. scalebox/version.py +2 -2
  82. {scalebox_sdk-0.1.24.dist-info → scalebox_sdk-1.0.1.dist-info}/METADATA +1 -1
  83. {scalebox_sdk-0.1.24.dist-info → scalebox_sdk-1.0.1.dist-info}/RECORD +87 -69
  84. {scalebox_sdk-0.1.24.dist-info → scalebox_sdk-1.0.1.dist-info}/WHEEL +1 -1
  85. {scalebox_sdk-0.1.24.dist-info → scalebox_sdk-1.0.1.dist-info}/entry_points.txt +0 -0
  86. {scalebox_sdk-0.1.24.dist-info → scalebox_sdk-1.0.1.dist-info}/licenses/LICENSE +0 -0
  87. {scalebox_sdk-0.1.24.dist-info → scalebox_sdk-1.0.1.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  import os
2
- from typing import Dict, Literal, Optional
2
+ from typing import Dict, Literal, Optional, TypedDict
3
3
 
4
4
  from httpx._types import ProxyTypes
5
5
 
@@ -10,6 +10,33 @@ REQUEST_TIMEOUT: float = 30.0 # 30 seconds
10
10
  KEEPALIVE_PING_INTERVAL_SEC = 50 # 50 seconds
11
11
  KEEPALIVE_PING_HEADER = "Keepalive-Ping-Interval"
12
12
 
13
+ class ApiParams(TypedDict, total=False):
14
+ """
15
+ Parameters for a request.
16
+
17
+ In the case of a sandbox, it applies to all **requests made to the returned sandbox**.
18
+ """
19
+
20
+ request_timeout: Optional[float]
21
+ """Timeout for the request in **seconds**, defaults to 60 seconds."""
22
+
23
+ headers: Optional[Dict[str, str]]
24
+ """Additional headers to send with the request."""
25
+
26
+ api_key: Optional[str]
27
+ """SBX API Key to use for authentication, defaults to `SBX_API_KEY` environment variable."""
28
+
29
+ domain: Optional[str]
30
+ """SBX domain to use for authentication, defaults to `SBX_DOMAIN` environment variable."""
31
+
32
+ api_url: Optional[str]
33
+ """URL to use for the API, defaults to `https://api.<domain>`. For internal use only."""
34
+
35
+ debug: Optional[bool]
36
+ """Whether to use debug mode, defaults to `SBX_DEBUG` environment variable."""
37
+
38
+ proxy: Optional[ProxyTypes]
39
+ """Proxy to use for the request. In case of a sandbox it applies to all **requests made to the returned sandbox**."""
13
40
 
14
41
  class ConnectionConfig:
15
42
  """
@@ -32,6 +59,10 @@ class ConnectionConfig:
32
59
  def _access_token():
33
60
  return os.getenv("SBX_ACCESS_TOKEN")
34
61
 
62
+ @staticmethod
63
+ def _debug_host():
64
+ return os.getenv("SBX_DEBUG_HOST") or "localhost"
65
+
35
66
  def __init__(
36
67
  self,
37
68
  domain: Optional[str] = None,
@@ -41,11 +72,13 @@ class ConnectionConfig:
41
72
  request_timeout: Optional[float] = None,
42
73
  headers: Optional[Dict[str, str]] = None,
43
74
  proxy: Optional[ProxyTypes] = None,
75
+ debug_host: Optional[str] = None,
44
76
  ):
45
77
  self.domain = domain or ConnectionConfig._domain()
46
78
  self.debug = debug or ConnectionConfig._debug()
47
79
  self.api_key = api_key or ConnectionConfig._api_key()
48
80
  self.access_token = access_token or ConnectionConfig._access_token()
81
+ self.debug_host = debug_host or ConnectionConfig._debug_host()
49
82
  self.headers = headers or {}
50
83
  # self.headers["User-Agent"] = f"csx-python-sdk/{package_version}"
51
84
 
@@ -1 +1 @@
1
- from .client import Client, Code, ConnectException, GzipCompressor # noqa: F401
1
+ from .client import Client, Code, ConnectException, GzipCompressor # noqa: F401