scalebox-sdk 0.1.12__tar.gz → 0.1.14__tar.gz

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 (166) hide show
  1. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/CHANGELOG.md +24 -0
  2. {scalebox_sdk-0.1.12/scalebox_sdk.egg-info → scalebox_sdk-0.1.14}/PKG-INFO +2 -2
  3. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/README.md +1 -1
  4. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/pyproject.toml +2 -2
  5. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/__init__.py +1 -1
  6. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/__init__.py +3 -3
  7. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/__init__.py +1 -1
  8. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/code_interpreter_async.py +3 -3
  9. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/code_interpreter_sync.py +2 -2
  10. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/csx_desktop/main.py +4 -4
  11. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/aclient.py +72 -72
  12. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/code_interpreter_centext.py +21 -21
  13. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/code_interpreter_centext_sync.py +21 -21
  14. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/code_interpreter_test.py +1 -1
  15. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/code_interpreter_test_sync.py +1 -1
  16. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/run_all_validation_tests.py +334 -334
  17. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_basic.py +78 -78
  18. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_code_interpreter_async_comprehensive.py +2653 -2653
  19. scalebox_sdk-0.1.12/scalebox/test/test_code_interpreter_e2bsync_comprehensive.py → scalebox_sdk-0.1.14/scalebox/test/test_code_interpreter_execcode.py +328 -392
  20. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_code_interpreter_sync_comprehensive.py +3416 -3412
  21. scalebox_sdk-0.1.14/scalebox/test/test_csx_desktop_examples.py +130 -0
  22. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_sandbox_async_comprehensive.py +736 -738
  23. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_sandbox_stress_and_edge_cases.py +778 -778
  24. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_sandbox_sync_comprehensive.py +779 -770
  25. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/test_sandbox_usage_examples.py +987 -987
  26. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testacreate.py +24 -24
  27. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testagetinfo.py +18 -18
  28. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testcodeinterpreter_async.py +508 -508
  29. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testcodeinterpreter_sync.py +239 -239
  30. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testcomputeuse.py +2 -2
  31. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testnovnc.py +12 -12
  32. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/testsandbox_async.py +202 -118
  33. scalebox_sdk-0.1.14/scalebox/test/testsandbox_sync.py +71 -0
  34. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/version.py +2 -2
  35. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14/scalebox_sdk.egg-info}/PKG-INFO +2 -2
  36. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox_sdk.egg-info/SOURCES.txt +2 -3
  37. scalebox_sdk-0.1.12/scalebox/test/test_code_interpreter_e2basync_comprehensive.py +0 -2655
  38. scalebox_sdk-0.1.12/scalebox/test/test_e2b_first.py +0 -11
  39. scalebox_sdk-0.1.12/scalebox/test/testsandbox_sync.py +0 -38
  40. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/LICENSE +0 -0
  41. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/MANIFEST.in +0 -0
  42. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/__init__.py +0 -0
  43. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/__init__.py +0 -0
  44. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/delete_sandboxes_sandbox_id.py +0 -0
  45. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/get_sandboxes.py +0 -0
  46. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/get_sandboxes_metrics.py +0 -0
  47. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/get_sandboxes_sandbox_id.py +0 -0
  48. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/get_sandboxes_sandbox_id_logs.py +0 -0
  49. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/get_sandboxes_sandbox_id_metrics.py +0 -0
  50. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/get_v2_sandboxes.py +0 -0
  51. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/post_sandboxes.py +0 -0
  52. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/post_sandboxes_sandbox_id_pause.py +0 -0
  53. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/post_sandboxes_sandbox_id_refreshes.py +0 -0
  54. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/post_sandboxes_sandbox_id_resume.py +0 -0
  55. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/api/sandboxes/post_sandboxes_sandbox_id_timeout.py +0 -0
  56. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/client.py +0 -0
  57. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/errors.py +0 -0
  58. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/__init__.py +0 -0
  59. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/build_log_entry.py +0 -0
  60. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/created_access_token.py +0 -0
  61. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/created_team_api_key.py +0 -0
  62. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/error.py +0 -0
  63. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/identifier_masking_details.py +0 -0
  64. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/listed_sandbox.py +0 -0
  65. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/log_level.py +0 -0
  66. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/new_access_token.py +0 -0
  67. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/new_sandbox.py +0 -0
  68. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/new_team_api_key.py +0 -0
  69. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/node.py +0 -0
  70. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/node_detail.py +0 -0
  71. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/node_status.py +0 -0
  72. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/node_status_change.py +0 -0
  73. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/post_sandboxes_sandbox_id_refreshes_body.py +0 -0
  74. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/post_sandboxes_sandbox_id_timeout_body.py +0 -0
  75. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/resumed_sandbox.py +0 -0
  76. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandbox.py +0 -0
  77. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandbox_detail.py +0 -0
  78. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandbox_log.py +0 -0
  79. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandbox_logs.py +0 -0
  80. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandbox_metric.py +0 -0
  81. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandbox_state.py +0 -0
  82. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/sandboxes_with_metrics.py +0 -0
  83. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/team.py +0 -0
  84. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/team_api_key.py +0 -0
  85. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/team_user.py +0 -0
  86. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template.py +0 -0
  87. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_build.py +0 -0
  88. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_build_file_upload.py +0 -0
  89. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_build_request.py +0 -0
  90. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_build_request_v2.py +0 -0
  91. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_build_start_v2.py +0 -0
  92. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_build_status.py +0 -0
  93. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_step.py +0 -0
  94. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/template_update_request.py +0 -0
  95. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/models/update_team_api_key.py +0 -0
  96. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/py.typed +0 -0
  97. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/client/types.py +0 -0
  98. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/api/metadata.py +0 -0
  99. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/cli.py +0 -0
  100. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/client/__init__.py +0 -0
  101. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/client/aclient.py +0 -0
  102. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/client/api.proto +0 -0
  103. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/client/buf.gen.yaml +0 -0
  104. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/client/client.py +0 -0
  105. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/client/requirements.txt +0 -0
  106. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/__init__.py +0 -0
  107. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/charts.py +0 -0
  108. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/constants.py +0 -0
  109. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/exceptions.py +0 -0
  110. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/code_interpreter/models.py +0 -0
  111. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/connection_config.py +0 -0
  112. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/csx_connect/__init__.py +0 -0
  113. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/csx_connect/client.py +0 -0
  114. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/csx_desktop/__init__.py +0 -0
  115. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/exceptions.py +0 -0
  116. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/__init__.py +0 -0
  117. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/api.py +0 -0
  118. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/api_pb2.py +0 -0
  119. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/api_pb2.pyi +0 -0
  120. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/api_pb2_connect.py +0 -0
  121. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/rpc.py +0 -0
  122. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/generated/versions.py +0 -0
  123. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/requirements.txt +0 -0
  124. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/__init__.py +0 -0
  125. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/commands/__init__.py +0 -0
  126. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/commands/command_handle.py +0 -0
  127. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/commands/main.py +0 -0
  128. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/filesystem/__init__.py +0 -0
  129. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/filesystem/filesystem.py +0 -0
  130. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/filesystem/watch_handle.py +0 -0
  131. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/main.py +0 -0
  132. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/sandbox_api.py +0 -0
  133. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/signature.py +0 -0
  134. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox/utils.py +0 -0
  135. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/__init__.py +0 -0
  136. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/commands/command.py +0 -0
  137. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/commands/command_handle.py +0 -0
  138. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/commands/pty.py +0 -0
  139. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/filesystem/filesystem.py +0 -0
  140. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/filesystem/watch_handle.py +0 -0
  141. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/main.py +0 -0
  142. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/sandbox_api.py +0 -0
  143. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_async/utils.py +0 -0
  144. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/__init__.py +0 -0
  145. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/commands/__init__.py +0 -0
  146. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/commands/command.py +0 -0
  147. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/commands/command_handle.py +0 -0
  148. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/commands/pty.py +0 -0
  149. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/filesystem/__init__.py +0 -0
  150. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/filesystem/filesystem.py +0 -0
  151. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/filesystem/watch_handle.py +0 -0
  152. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/main.py +0 -0
  153. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/sandbox_sync/sandbox_api.py +0 -0
  154. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/CODE_INTERPRETER_TESTS_READY.md +0 -0
  155. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/README.md +0 -0
  156. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/__init__.py +0 -0
  157. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/run_code_interpreter_tests.sh +0 -0
  158. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/test/run_tests.sh +0 -0
  159. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/utils/__init__.py +0 -0
  160. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/utils/httpcoreclient.py +0 -0
  161. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox/utils/httpxclient.py +0 -0
  162. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox_sdk.egg-info/dependency_links.txt +0 -0
  163. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox_sdk.egg-info/entry_points.txt +0 -0
  164. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox_sdk.egg-info/requires.txt +0 -0
  165. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/scalebox_sdk.egg-info/top_level.txt +0 -0
  166. {scalebox_sdk-0.1.12 → scalebox_sdk-0.1.14}/setup.cfg +0 -0
@@ -1,4 +1,28 @@
1
1
  # Changelog
2
+ ## [0.1.14] - 2025-10-13
3
+
4
+ ### Added
5
+ - Version 0.1.14 release
6
+
7
+ ### Changed
8
+ - Automated version bump (patch)
9
+
10
+ ### Fixed
11
+ - Minor improvements and bug fixes
12
+
13
+
14
+ ## [0.1.13] - 2025-10-13
15
+
16
+ ### Added
17
+ - Version 0.1.13 release
18
+
19
+ ### Changed
20
+ - Automated version bump (patch)
21
+
22
+ ### Fixed
23
+ - Minor improvements and bug fixes
24
+
25
+
2
26
  ## [0.1.12] - 2025-10-11
3
27
 
4
28
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalebox-sdk
3
- Version: 0.1.12
3
+ Version: 0.1.14
4
4
  Summary: ScaleBox Python SDK - A multi-language code execution sandbox with Python, R, Node.js, Deno/TypeScript, Java, and Bash support
5
5
  Author-email: ScaleBox Team <dev@scalebox.dev>
6
6
  Maintainer-email: ScaleBox Team <dev@scalebox.dev>
@@ -105,7 +105,7 @@ cp -r scalebox venv/lib/python3.12/site-packages/
105
105
  ## 配置
106
106
  支持从环境变量或 `.env` 文件读取凭据:
107
107
 
108
- - `SBX_API_KEY` 或 `E2B_API_KEY`
108
+ - `SBX_API_KEY`
109
109
 
110
110
  示例:
111
111
  ```env
@@ -48,7 +48,7 @@ cp -r scalebox venv/lib/python3.12/site-packages/
48
48
  ## 配置
49
49
  支持从环境变量或 `.env` 文件读取凭据:
50
50
 
51
- - `SBX_API_KEY` 或 `E2B_API_KEY`
51
+ - `SBX_API_KEY`
52
52
 
53
53
  示例:
54
54
  ```env
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "scalebox-sdk"
7
- version = "0.1.12"
7
+ version = "0.1.14"
8
8
  description = "ScaleBox Python SDK - A multi-language code execution sandbox with Python, R, Node.js, Deno/TypeScript, Java, and Bash support"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -114,7 +114,7 @@ line_length = 88
114
114
  known_first_party = ["scalebox"]
115
115
 
116
116
  [tool.mypy]
117
- python_version = "0.1.12"
117
+ python_version = "0.1.14"
118
118
  ignore_missing_imports = true
119
119
  ignore_errors = true
120
120
 
@@ -9,7 +9,7 @@ A multi-language code execution sandbox with support for:
9
9
  - Real-time callbacks and monitoring
10
10
  """
11
11
 
12
- __version__ = "0.1.12"
12
+ __version__ = "0.1.14"
13
13
  __author__ = "ScaleBox Team"
14
14
  __email__ = "dev@scalebox.dev"
15
15
 
@@ -67,8 +67,8 @@ class ApiClient(AuthenticatedClient):
67
67
  if config.api_key is None:
68
68
  raise AuthenticationException(
69
69
  "API key is required, please visit the Team tab at https://dev/dashboard to get your API key. "
70
- "You can either set the environment variable `E2B_API_KEY` "
71
- 'or you can pass it directly to the sandbox like Sandbox(api_key="e2b_...")',
70
+ "You can either set the environment variable `SBX_API_KEY` "
71
+ 'or you can pass it directly to the sandbox like Sandbox(api_key="sbx_...")',
72
72
  )
73
73
  token = config.api_key
74
74
 
@@ -76,7 +76,7 @@ class ApiClient(AuthenticatedClient):
76
76
  if config.access_token is None:
77
77
  raise AuthenticationException(
78
78
  "Access token is required, please visit the Personal tab at https://dev/dashboard to get your access token. "
79
- "You can set the environment variable `E2B_ACCESS_TOKEN` or pass the `access_token` in options.",
79
+ "You can set the environment variable `SBX_ACCESS_TOKEN` or pass the `access_token` in options.",
80
80
  )
81
81
  token = config.access_token
82
82
 
@@ -1,4 +1,4 @@
1
- """A client library for accessing E2B API"""
1
+ """A client library for accessing Scalebox API"""
2
2
 
3
3
  from .client import AuthenticatedClient, Client
4
4
 
@@ -28,7 +28,7 @@ logger = logging.getLogger(__name__)
28
28
 
29
29
  class AsyncSandbox(BaseAsyncSandbox):
30
30
  """
31
- E2B cloud sandbox is a secure and isolated cloud environment.
31
+ Scalebox cloud sandbox is a secure and isolated cloud environment.
32
32
 
33
33
  The sandbox allows you to:
34
34
  - Access Linux OS
@@ -37,13 +37,13 @@ class AsyncSandbox(BaseAsyncSandbox):
37
37
  - Run isolated code
38
38
  - Access the internet
39
39
 
40
- Check docs [here](https://e2b.dev/docs).
40
+ Check docs for more information.
41
41
 
42
42
  Use the `AsyncSandbox.create()` to create a new sandbox.
43
43
 
44
44
  Example:
45
45
  ```python
46
- from e2b_code_interpreter import AsyncSandbox
46
+ from scalebox.code_interpreter import AsyncSandbox
47
47
  sandbox = await AsyncSandbox.create()
48
48
  ```
49
49
  """
@@ -27,7 +27,7 @@ logger = logging.getLogger(__name__)
27
27
 
28
28
  class Sandbox(BaseSandbox):
29
29
  """
30
- E2B cloud sandbox is a secure and isolated cloud environment.
30
+ Scalebox cloud sandbox is a secure and isolated cloud environment.
31
31
 
32
32
  The sandbox allows you to:
33
33
  - Access Linux OS
@@ -36,7 +36,7 @@ class Sandbox(BaseSandbox):
36
36
  - Run isolated code
37
37
  - Access the internet
38
38
 
39
- Check docs [here](https://.dev/docs).
39
+ Check docs for more information.
40
40
 
41
41
  Use the `Sandbox()` to create a new sandbox.
42
42
 
@@ -228,10 +228,10 @@ class Sandbox(SandboxBase):
228
228
  # :param timeout: Timeout for the sandbox in **seconds**, default to 300 seconds. Maximum time a sandbox can be kept alive is 24 hours (86_400 seconds) for Pro users and 1 hour (3_600 seconds) for Hobby users
229
229
  # :param metadata: Custom metadata for the sandbox
230
230
  # :param envs: Custom environment variables for the sandbox
231
- # :param api_key: E2B API Key to use for authentication, defaults to `E2B_API_KEY` environment variable
232
- # :param domain: E2B domain to use for authentication, defaults to `E2B_DOMAIN` environment variable
233
- # :param debug: If True, the sandbox will be created in debug mode, defaults to `E2B_DEBUG` environment variable
234
- # :param sandbox_id: Sandbox ID to connect to, defaults to `E2B_SANDBOX_ID` environment variable
231
+ # :param api_key: API Key to use for authentication, defaults to `SBX_API_KEY` environment variable
232
+ # :param domain: Domain to use for authentication, defaults to `SBX_DOMAIN` environment variable
233
+ # :param debug: If True, the sandbox will be created in debug mode, defaults to `SBX_DEBUG` environment variable
234
+ # :param sandbox_id: Sandbox ID to connect to, defaults to `SBX_SANDBOX_ID` environment variable
235
235
  # :param request_timeout: Timeout for the request in **seconds**
236
236
  # :param proxy: Proxy to use for the request and for the requests made to the returned sandbox
237
237
  #
@@ -1,72 +1,72 @@
1
- # import sys, os
2
- # sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'generated'))
3
- import asyncio
4
-
5
- import aiohttp
6
- from generated import api_pb2
7
- from generated.api_pb2_connect import AsyncFilesystemClient
8
- from tenacity import (
9
- retry,
10
- retry_if_exception_type,
11
- stop_after_attempt,
12
- wait_exponential,
13
- )
14
-
15
-
16
- @retry(
17
- stop=stop_after_attempt(5), # 最大重试5次
18
- wait=wait_exponential(multiplier=1, min=4, max=10), # 指数退避等待
19
- retry=retry_if_exception_type(
20
- (aiohttp.ClientError, asyncio.TimeoutError)
21
- ), # 针对这些异常重试
22
- )
23
- async def watch_directory_example():
24
- # 创建 aiohttp 客户端会话
25
- async with aiohttp.ClientSession(
26
- timeout=aiohttp.ClientTimeout(total=None)
27
- ) as session:
28
- # 创建文件系统客户端
29
- client = AsyncFilesystemClient(
30
- base_url="http://localhost:8080",
31
- http_client=session,
32
- # protocol=ConnectProtocol.CONNECT_PROTOBUF # 如果需要指定协议
33
- )
34
- # extra = {"authorization": "Bearer root"}
35
- # 创建监视请求
36
- request = api_pb2.WatchDirRequest(path="/root")
37
-
38
- # 可选:添加额外的请求头
39
- extra_headers = {
40
- "Authorization": "Bearer root",
41
- "X-Custom-Header": "custom-value",
42
- }
43
-
44
- try:
45
- # 使用 async for 循环处理流式响应
46
- async for response in client.watch_dir(
47
- request, extra_headers=extra_headers
48
- ):
49
- print(f"Received event: {response}")
50
- # 在这里处理每个事件
51
- # 例如,根据事件类型执行不同的操作
52
-
53
- # 如果收到特定事件,可以中断循环
54
- # if response.event_type == api_pb2.WatchDirResponse.EVENT_TYPE_STOP:
55
- # break
56
-
57
- except Exception as e:
58
- print(f"Error during directory watching: {e}")
59
-
60
- finally:
61
- # 关闭会话(在 with 语句中会自动关闭,但这里为了清晰展示)
62
- await session.close()
63
-
64
-
65
- async def main():
66
- # 运行监视示例
67
- await watch_directory_example()
68
-
69
-
70
- if __name__ == "__main__":
71
- # 运行异步主函数
72
- asyncio.run(main())
1
+ # import sys, os
2
+ # sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'generated'))
3
+ import asyncio
4
+
5
+ import aiohttp
6
+ from generated import api_pb2
7
+ from generated.api_pb2_connect import AsyncFilesystemClient
8
+ from tenacity import (
9
+ retry,
10
+ retry_if_exception_type,
11
+ stop_after_attempt,
12
+ wait_exponential,
13
+ )
14
+
15
+
16
+ @retry(
17
+ stop=stop_after_attempt(5), # 最大重试5次
18
+ wait=wait_exponential(multiplier=1, min=4, max=10), # 指数退避等待
19
+ retry=retry_if_exception_type(
20
+ (aiohttp.ClientError, asyncio.TimeoutError)
21
+ ), # 针对这些异常重试
22
+ )
23
+ async def watch_directory_example():
24
+ # 创建 aiohttp 客户端会话
25
+ async with aiohttp.ClientSession(
26
+ timeout=aiohttp.ClientTimeout(total=None)
27
+ ) as session:
28
+ # 创建文件系统客户端
29
+ client = AsyncFilesystemClient(
30
+ base_url="http://localhost:8080",
31
+ http_client=session,
32
+ # protocol=ConnectProtocol.CONNECT_PROTOBUF # 如果需要指定协议
33
+ )
34
+ # extra = {"authorization": "Bearer root"}
35
+ # 创建监视请求
36
+ request = api_pb2.WatchDirRequest(path="/root")
37
+
38
+ # 可选:添加额外的请求头
39
+ extra_headers = {
40
+ "Authorization": "Bearer root",
41
+ "X-Custom-Header": "custom-value",
42
+ }
43
+
44
+ try:
45
+ # 使用 async for 循环处理流式响应
46
+ async for response in client.watch_dir(
47
+ request, extra_headers=extra_headers
48
+ ):
49
+ print(f"Received event: {response}")
50
+ # 在这里处理每个事件
51
+ # 例如,根据事件类型执行不同的操作
52
+
53
+ # 如果收到特定事件,可以中断循环
54
+ # if response.event_type == api_pb2.WatchDirResponse.EVENT_TYPE_STOP:
55
+ # break
56
+
57
+ except Exception as e:
58
+ print(f"Error during directory watching: {e}")
59
+
60
+ finally:
61
+ # 关闭会话(在 with 语句中会自动关闭,但这里为了清晰展示)
62
+ await session.close()
63
+
64
+
65
+ async def main():
66
+ # 运行监视示例
67
+ await watch_directory_example()
68
+
69
+
70
+ if __name__ == "__main__":
71
+ # 运行异步主函数
72
+ asyncio.run(main())
@@ -1,21 +1,21 @@
1
- import asyncio
2
- import time
3
-
4
- from scalebox.code_interpreter import AsyncSandbox
5
-
6
- # from scalebox.sandbox_async.main import AsyncSandbox
7
-
8
-
9
- async def pty_output_handler(output):
10
- """处理 PTY 输出的回调函数"""
11
- print(f"输出: {output}")
12
-
13
-
14
- async def main():
15
- sandbox = AsyncSandbox()
16
- context = await sandbox.create_code_context(language="python3")
17
- print(context.__dict__)
18
-
19
-
20
- if __name__ == "__main__":
21
- asyncio.run(main())
1
+ import asyncio
2
+ import time
3
+
4
+ from scalebox.code_interpreter import AsyncSandbox
5
+
6
+ # from scalebox.sandbox_async.main import AsyncSandbox
7
+
8
+
9
+ async def pty_output_handler(output):
10
+ """处理 PTY 输出的回调函数"""
11
+ print(f"输出: {output}")
12
+
13
+
14
+ async def main():
15
+ sandbox = AsyncSandbox()
16
+ context = await sandbox.create_code_context(language="python3")
17
+ print(context.__dict__)
18
+
19
+
20
+ if __name__ == "__main__":
21
+ asyncio.run(main())
@@ -1,21 +1,21 @@
1
- import asyncio
2
- import time
3
-
4
- from scalebox.code_interpreter import Sandbox
5
-
6
- # from scalebox.sandbox_async.main import AsyncSandbox
7
-
8
-
9
- async def pty_output_handler(output):
10
- """处理 PTY 输出的回调函数"""
11
- print(f"输出: {output}")
12
-
13
-
14
- def main():
15
- sandbox = Sandbox()
16
- context = sandbox.create_code_context(language="python3")
17
- print(context.__dict__)
18
-
19
-
20
- if __name__ == "__main__":
21
- main()
1
+ import asyncio
2
+ import time
3
+
4
+ from scalebox.code_interpreter import Sandbox
5
+
6
+ # from scalebox.sandbox_async.main import AsyncSandbox
7
+
8
+
9
+ async def pty_output_handler(output):
10
+ """处理 PTY 输出的回调函数"""
11
+ print(f"输出: {output}")
12
+
13
+
14
+ def main():
15
+ sandbox = Sandbox()
16
+ context = sandbox.create_code_context(language="python3")
17
+ print(context.__dict__)
18
+
19
+
20
+ if __name__ == "__main__":
21
+ main()
@@ -17,7 +17,7 @@ async def main():
17
17
  """
18
18
  import time
19
19
  for i in range(3):
20
- print("Hello E2B", i)
20
+ print("Hello Scalebox", i)
21
21
  time.sleep(50)
22
22
  """,
23
23
  language="python3",
@@ -17,7 +17,7 @@ def main():
17
17
  """
18
18
  import time
19
19
  for i in range(3):
20
- print("Hello E2B", i)
20
+ print("Hello Scalebox", i)
21
21
  time.sleep(50)
22
22
  """,
23
23
  language="python3",