scalebox-sdk 0.1.25__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 (70) hide show
  1. scalebox/__init__.py +2 -2
  2. scalebox/api/__init__.py +3 -1
  3. scalebox/api/client/api/sandboxes/post_sandboxes_sandbox_id_connect.py +193 -0
  4. scalebox/api/client/models/connect_sandbox.py +59 -0
  5. scalebox/api/client/models/error.py +2 -2
  6. scalebox/api/client/models/listed_sandbox.py +19 -1
  7. scalebox/api/client/models/new_sandbox.py +10 -0
  8. scalebox/api/client/models/sandbox.py +13 -0
  9. scalebox/api/client/models/sandbox_detail.py +24 -0
  10. scalebox/cli.py +125 -125
  11. scalebox/client/aclient.py +57 -57
  12. scalebox/client/client.py +102 -102
  13. scalebox/code_interpreter/__init__.py +12 -12
  14. scalebox/code_interpreter/charts.py +230 -230
  15. scalebox/code_interpreter/constants.py +3 -3
  16. scalebox/code_interpreter/exceptions.py +13 -13
  17. scalebox/code_interpreter/models.py +485 -485
  18. scalebox/connection_config.py +34 -1
  19. scalebox/csx_connect/__init__.py +1 -1
  20. scalebox/csx_connect/client.py +485 -485
  21. scalebox/csx_desktop/main.py +651 -651
  22. scalebox/exceptions.py +83 -83
  23. scalebox/generated/api.py +61 -61
  24. scalebox/generated/api_pb2.py +203 -203
  25. scalebox/generated/api_pb2.pyi +956 -956
  26. scalebox/generated/api_pb2_connect.py +1407 -1407
  27. scalebox/generated/rpc.py +50 -50
  28. scalebox/sandbox/main.py +146 -139
  29. scalebox/sandbox/sandbox_api.py +105 -91
  30. scalebox/sandbox/signature.py +40 -40
  31. scalebox/sandbox/utils.py +34 -34
  32. scalebox/sandbox_async/main.py +226 -44
  33. scalebox/sandbox_async/sandbox_api.py +124 -3
  34. scalebox/sandbox_sync/main.py +205 -130
  35. scalebox/sandbox_sync/sandbox_api.py +119 -3
  36. scalebox/test/CODE_INTERPRETER_TESTS_READY.md +323 -323
  37. scalebox/test/README.md +329 -329
  38. scalebox/test/bedrock_openai_adapter.py +67 -0
  39. scalebox/test/code_interpreter_test.py +34 -34
  40. scalebox/test/code_interpreter_test_sync.py +34 -34
  41. scalebox/test/run_stress_code_interpreter_sync.py +166 -0
  42. scalebox/test/simple_upload_example.py +123 -0
  43. scalebox/test/stabitiy_test.py +310 -0
  44. scalebox/test/test_browser_use.py +25 -0
  45. scalebox/test/test_browser_use_scalebox.py +61 -0
  46. scalebox/test/test_code_interpreter_sync_comprehensive.py +115 -65
  47. scalebox/test/test_connect_pause_async.py +277 -0
  48. scalebox/test/test_connect_pause_sync.py +267 -0
  49. scalebox/test/test_desktop_sandbox_sf.py +117 -0
  50. scalebox/test/test_download_url.py +49 -0
  51. scalebox/test/test_sandbox_async_comprehensive.py +1 -1
  52. scalebox/test/test_sandbox_object_storage_example.py +146 -0
  53. scalebox/test/test_sandbox_object_storage_example_async.py +156 -0
  54. scalebox/test/test_sf.py +137 -0
  55. scalebox/test/test_watch_dir_async.py +56 -0
  56. scalebox/test/testacreate.py +1 -1
  57. scalebox/test/testagetinfo.py +1 -1
  58. scalebox/test/testcomputeuse.py +243 -243
  59. scalebox/test/testsandbox_api.py +1 -3
  60. scalebox/test/testsandbox_sync.py +1 -1
  61. scalebox/test/upload_100mb_example.py +355 -0
  62. scalebox/utils/httpcoreclient.py +297 -297
  63. scalebox/utils/httpxclient.py +403 -403
  64. scalebox/version.py +2 -2
  65. {scalebox_sdk-0.1.25.dist-info → scalebox_sdk-1.0.1.dist-info}/METADATA +1 -1
  66. {scalebox_sdk-0.1.25.dist-info → scalebox_sdk-1.0.1.dist-info}/RECORD +70 -53
  67. {scalebox_sdk-0.1.25.dist-info → scalebox_sdk-1.0.1.dist-info}/WHEEL +1 -1
  68. {scalebox_sdk-0.1.25.dist-info → scalebox_sdk-1.0.1.dist-info}/entry_points.txt +0 -0
  69. {scalebox_sdk-0.1.25.dist-info → scalebox_sdk-1.0.1.dist-info}/licenses/LICENSE +0 -0
  70. {scalebox_sdk-0.1.25.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