withruntime 0.8.4__tar.gz → 0.10.0__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 (313) hide show
  1. {withruntime-0.8.4 → withruntime-0.10.0}/PKG-INFO +23 -9
  2. {withruntime-0.8.4 → withruntime-0.10.0}/README.md +20 -8
  3. {withruntime-0.8.4 → withruntime-0.10.0}/pyproject.toml +6 -1
  4. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_blaxel.py +427 -6
  5. withruntime-0.10.0/tests/test_blaxel_wait_deadline.py +57 -0
  6. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_client.py +45 -14
  7. withruntime-0.10.0/tests/test_compat_live.py +101 -0
  8. withruntime-0.10.0/tests/test_compat_modal_deadline_errors.py +73 -0
  9. withruntime-0.10.0/tests/test_compat_new_providers.py +607 -0
  10. withruntime-0.10.0/tests/test_compat_prime_process_lifecycle.py +106 -0
  11. withruntime-0.10.0/tests/test_compat_prime_validation.py +274 -0
  12. withruntime-0.10.0/tests/test_compat_python_disk_snapshots.py +159 -0
  13. withruntime-0.10.0/tests/test_compat_python_e2b_deadline.py +146 -0
  14. withruntime-0.10.0/tests/test_compat_python_e2b_pty.py +172 -0
  15. withruntime-0.10.0/tests/test_compat_python_e2b_stream.py +126 -0
  16. withruntime-0.10.0/tests/test_compat_python_e2b_watch.py +66 -0
  17. withruntime-0.10.0/tests/test_compat_python_interpreter_deadline.py +113 -0
  18. withruntime-0.10.0/tests/test_compat_python_modal.py +116 -0
  19. withruntime-0.10.0/tests/test_compat_python_official.py +668 -0
  20. withruntime-0.10.0/tests/test_compat_python_pins.py +63 -0
  21. withruntime-0.10.0/tests/test_compat_python_processes.py +274 -0
  22. withruntime-0.10.0/tests/test_compat_python_request_scope.py +183 -0
  23. withruntime-0.10.0/tests/test_compat_python_runloop.py +146 -0
  24. withruntime-0.10.0/tests/test_compat_python_shell.py +61 -0
  25. withruntime-0.10.0/tests/test_compat_python_snapshot_capture.py +86 -0
  26. withruntime-0.10.0/tests/test_compat_python_sprites.py +65 -0
  27. withruntime-0.10.0/tests/test_compat_router.py +133 -0
  28. withruntime-0.10.0/tests/test_customer_usage.py +127 -0
  29. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_daytona.py +1 -1
  30. withruntime-0.10.0/tests/test_daytona_create_cleanup.py +75 -0
  31. withruntime-0.10.0/tests/test_daytona_download_labels.py +153 -0
  32. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_e2b_code_interpreter.py +21 -13
  33. withruntime-0.10.0/tests/test_e2b_fork_validation.py +78 -0
  34. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_e2b_sandbox.py +30 -8
  35. withruntime-0.10.0/tests/test_e2b_watch.py +103 -0
  36. withruntime-0.10.0/tests/test_embed_and_webhook_watch.py +57 -0
  37. withruntime-0.10.0/tests/test_exec_stream_names.py +51 -0
  38. withruntime-0.10.0/tests/test_file_archives.py +174 -0
  39. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_files_upload_parallel.py +8 -0
  40. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_harbor.py +56 -3
  41. withruntime-0.10.0/tests/test_interface_contract.py +81 -0
  42. withruntime-0.10.0/tests/test_package_typing.py +142 -0
  43. withruntime-0.10.0/tests/test_process_deadline.py +269 -0
  44. withruntime-0.10.0/tests/test_process_input.py +50 -0
  45. withruntime-0.10.0/tests/test_process_output.py +50 -0
  46. withruntime-0.10.0/tests/test_process_write_backpressure.py +174 -0
  47. withruntime-0.10.0/tests/test_product_aliases.py +87 -0
  48. withruntime-0.10.0/tests/test_runloop_stream_cleanup.py +167 -0
  49. withruntime-0.10.0/tests/test_sandbox_origin.py +53 -0
  50. withruntime-0.10.0/tests/test_saved_connection.py +37 -0
  51. withruntime-0.10.0/tests/test_snapshot_recovery.py +128 -0
  52. withruntime-0.10.0/tests/test_start_report_kept.py +43 -0
  53. withruntime-0.10.0/tests/test_switch_image.py +74 -0
  54. withruntime-0.10.0/tests/test_tailscale.py +80 -0
  55. withruntime-0.10.0/tests/test_transport_body_recovery.py +229 -0
  56. withruntime-0.10.0/tests/test_transport_connection_limits.py +256 -0
  57. withruntime-0.10.0/tests/test_unpack.py +180 -0
  58. withruntime-0.10.0/tests/test_vercel_create_validation.py +158 -0
  59. withruntime-0.10.0/tests/test_vercel_disk_snapshot.py +391 -0
  60. withruntime-0.10.0/tests/test_volume_operations.py +52 -0
  61. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/__init__.py +5 -1
  62. withruntime-0.10.0/withruntime/_api_defaults.py +21 -0
  63. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_client.py +380 -107
  64. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/__init__.py +2 -0
  65. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/interpreter.py +40 -23
  66. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/jobs.py +3 -2
  67. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/limits.py +6 -3
  68. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/previews.py +23 -6
  69. withruntime-0.10.0/withruntime/_async_products/tailscale.py +37 -0
  70. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/volumes.py +24 -2
  71. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/watch.py +9 -2
  72. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_clock.py +31 -2
  73. withruntime-0.10.0/withruntime/_compat.py +100 -0
  74. withruntime-0.10.0/withruntime/_compat_lifecycle.py +24 -0
  75. withruntime-0.10.0/withruntime/_compat_shell.py +166 -0
  76. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_connection.py +5 -2
  77. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_errors.py +8 -3
  78. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_eval_sandbox.py +3 -1
  79. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_http.py +283 -27
  80. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_proxy.py +17 -3
  81. withruntime-0.10.0/withruntime/_request_scope.py +84 -0
  82. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_client.py +380 -107
  83. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/__init__.py +2 -0
  84. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/interpreter.py +40 -23
  85. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/jobs.py +3 -2
  86. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/limits.py +6 -3
  87. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/previews.py +23 -6
  88. withruntime-0.10.0/withruntime/_sync_products/tailscale.py +38 -0
  89. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/volumes.py +24 -2
  90. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/watch.py +9 -2
  91. withruntime-0.10.0/withruntime/_unpack.py +326 -0
  92. withruntime-0.10.0/withruntime/_version.py +1 -0
  93. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/__init__.py +2 -2
  94. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/_async_io.py +6 -0
  95. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/_async_sandbox.py +71 -30
  96. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/_core.py +51 -4
  97. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/_sync_io.py +9 -0
  98. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/_sync_sandbox.py +71 -30
  99. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/__init__.py +1 -1
  100. withruntime-0.10.0/withruntime/blaxel/core/client/models/pagination_meta.py +2 -0
  101. withruntime-0.10.0/withruntime/blaxel/core/client/pagination.py +2 -0
  102. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/daytona/_async_daytona.py +39 -20
  103. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/daytona/_sync_daytona.py +39 -20
  104. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/deepagents.py +2 -1
  105. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/__init__.py +10 -6
  106. withruntime-0.10.0/withruntime/e2b/_async_io.py +310 -0
  107. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/_async_sandbox.py +185 -79
  108. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/_core.py +63 -13
  109. withruntime-0.10.0/withruntime/e2b/_sync_io.py +245 -0
  110. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/_sync_sandbox.py +173 -84
  111. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/code_interpreter/_async_ci.py +18 -37
  112. withruntime-0.10.0/withruntime/e2b/code_interpreter/_models.py +156 -0
  113. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/code_interpreter/_sync_ci.py +18 -37
  114. withruntime-0.10.0/withruntime/e2b/code_interpreter/charts.py +120 -0
  115. withruntime-0.10.0/withruntime/e2b/sandbox/__init__.py +1 -0
  116. withruntime-0.10.0/withruntime/e2b/sandbox/commands/__init__.py +2 -0
  117. withruntime-0.10.0/withruntime/e2b/sandbox/commands/command_handle.py +5 -0
  118. withruntime-0.10.0/withruntime/e2b/sandbox/filesystem/__init__.py +2 -0
  119. withruntime-0.10.0/withruntime/e2b/sandbox/filesystem/filesystem.py +4 -0
  120. withruntime-0.10.0/withruntime/e2b/sandbox_async/__init__.py +2 -0
  121. withruntime-0.10.0/withruntime/e2b/sandbox_async/commands/__init__.py +4 -0
  122. withruntime-0.10.0/withruntime/e2b/sandbox_async/commands/command.py +2 -0
  123. withruntime-0.10.0/withruntime/e2b/sandbox_async/commands/command_handle.py +6 -0
  124. withruntime-0.10.0/withruntime/e2b/sandbox_async/commands/pty.py +3 -0
  125. withruntime-0.10.0/withruntime/e2b/sandbox_async/filesystem/__init__.py +2 -0
  126. withruntime-0.10.0/withruntime/e2b/sandbox_async/filesystem/filesystem.py +4 -0
  127. withruntime-0.10.0/withruntime/e2b/sandbox_sync/__init__.py +2 -0
  128. withruntime-0.10.0/withruntime/e2b/sandbox_sync/commands/__init__.py +4 -0
  129. withruntime-0.10.0/withruntime/e2b/sandbox_sync/commands/command.py +2 -0
  130. withruntime-0.10.0/withruntime/e2b/sandbox_sync/commands/command_handle.py +6 -0
  131. withruntime-0.10.0/withruntime/e2b/sandbox_sync/commands/pty.py +3 -0
  132. withruntime-0.10.0/withruntime/e2b/sandbox_sync/filesystem/__init__.py +2 -0
  133. withruntime-0.10.0/withruntime/e2b/sandbox_sync/filesystem/filesystem.py +4 -0
  134. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/harbor.py +5 -30
  135. withruntime-0.10.0/withruntime/modal/__init__.py +373 -0
  136. withruntime-0.10.0/withruntime/modal/_async.py +305 -0
  137. withruntime-0.10.0/withruntime/modal/_dual.py +25 -0
  138. withruntime-0.10.0/withruntime/modal/_fs_async.py +118 -0
  139. withruntime-0.10.0/withruntime/modal/_fs_common.py +39 -0
  140. withruntime-0.10.0/withruntime/modal/_fs_sync.py +118 -0
  141. withruntime-0.10.0/withruntime/modal/_lookup.py +23 -0
  142. withruntime-0.10.0/withruntime/modal/_snapshot.py +33 -0
  143. withruntime-0.10.0/withruntime/modal/exception.py +52 -0
  144. withruntime-0.10.0/withruntime/modal/sandbox_fs.py +46 -0
  145. withruntime-0.10.0/withruntime/modal/types.py +37 -0
  146. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/openai_agents.py +2 -1
  147. withruntime-0.10.0/withruntime/prime/__init__.py +66 -0
  148. withruntime-0.10.0/withruntime/prime/_async.py +321 -0
  149. withruntime-0.10.0/withruntime/prime/_sync.py +321 -0
  150. withruntime-0.10.0/withruntime/prime/core/__init__.py +4 -0
  151. withruntime-0.10.0/withruntime/prime/core/client.py +4 -0
  152. withruntime-0.10.0/withruntime/prime/exceptions.py +98 -0
  153. withruntime-0.10.0/withruntime/prime/models.py +343 -0
  154. withruntime-0.10.0/withruntime/prime/process.py +163 -0
  155. withruntime-0.10.0/withruntime/prime/sandbox.py +3 -0
  156. withruntime-0.10.0/withruntime/py.typed +0 -0
  157. withruntime-0.10.0/withruntime/runloop/__init__.py +6 -0
  158. withruntime-0.10.0/withruntime/runloop/_async.py +658 -0
  159. withruntime-0.10.0/withruntime/runloop/_exceptions.py +2 -0
  160. withruntime-0.10.0/withruntime/runloop/_snapshots.py +48 -0
  161. withruntime-0.10.0/withruntime/runloop/_sync.py +658 -0
  162. withruntime-0.10.0/withruntime/runloop/lib/__init__.py +1 -0
  163. withruntime-0.10.0/withruntime/runloop/lib/polling.py +15 -0
  164. withruntime-0.10.0/withruntime/runloop/sdk/__init__.py +3 -0
  165. withruntime-0.10.0/withruntime/sprites/__init__.py +298 -0
  166. withruntime-0.10.0/withruntime/sprites/_capture.py +56 -0
  167. withruntime-0.10.0/withruntime/sprites/_capture_async.py +56 -0
  168. withruntime-0.10.0/withruntime/sprites/_metadata.py +64 -0
  169. withruntime-0.10.0/withruntime/sprites/_stream.py +68 -0
  170. withruntime-0.10.0/withruntime/sprites/_stream_async.py +67 -0
  171. withruntime-0.10.0/withruntime/sprites/async_client.py +217 -0
  172. withruntime-0.10.0/withruntime/sprites/async_exec.py +50 -0
  173. withruntime-0.10.0/withruntime/sprites/client.py +2 -0
  174. withruntime-0.10.0/withruntime/sprites/exceptions.py +25 -0
  175. withruntime-0.10.0/withruntime/sprites/exec.py +80 -0
  176. withruntime-0.10.0/withruntime/sprites/filesystem.py +2 -0
  177. withruntime-0.10.0/withruntime/sprites/sprite.py +2 -0
  178. withruntime-0.10.0/withruntime/sprites/types.py +36 -0
  179. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/tools.py +2 -1
  180. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/_async_sandbox.py +94 -15
  181. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/_core.py +5 -2
  182. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/_sync_sandbox.py +94 -15
  183. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime.egg-info/PKG-INFO +23 -9
  184. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime.egg-info/SOURCES.txt +121 -0
  185. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime.egg-info/requires.txt +3 -0
  186. withruntime-0.8.4/tests/test_unpack.py +0 -79
  187. withruntime-0.8.4/withruntime/_unpack.py +0 -99
  188. withruntime-0.8.4/withruntime/_version.py +0 -1
  189. withruntime-0.8.4/withruntime/e2b/_async_io.py +0 -68
  190. withruntime-0.8.4/withruntime/e2b/_sync_io.py +0 -46
  191. withruntime-0.8.4/withruntime/e2b/code_interpreter/_models.py +0 -101
  192. {withruntime-0.8.4 → withruntime-0.10.0}/LICENSE +0 -0
  193. {withruntime-0.8.4 → withruntime-0.10.0}/setup.cfg +0 -0
  194. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_account_errors.py +0 -0
  195. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_async_stream_cleanup.py +0 -0
  196. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_audit.py +0 -0
  197. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_billing.py +0 -0
  198. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_capacity_wait.py +0 -0
  199. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_deepagents.py +0 -0
  200. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_eval_sandbox.py +0 -0
  201. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_exec_stream.py +0 -0
  202. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_files_download.py +0 -0
  203. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_files_mode.py +0 -0
  204. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_http_tls_close.py +0 -0
  205. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_identity_token.py +0 -0
  206. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_images_v2.py +0 -0
  207. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_images_volumes_interpreter.py +0 -0
  208. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_inspect_ai.py +0 -0
  209. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_jobs.py +0 -0
  210. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_late_answer.py +0 -0
  211. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_lifecycle_settings.py +0 -0
  212. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_limits.py +0 -0
  213. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_mounts.py +0 -0
  214. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_network_funding.py +0 -0
  215. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_network_products.py +0 -0
  216. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_observability.py +0 -0
  217. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_openai_agents.py +0 -0
  218. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_previews_network_desktop.py +0 -0
  219. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_proxy.py +0 -0
  220. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_referrals.py +0 -0
  221. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_sandbox_sessions.py +0 -0
  222. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_secrets.py +0 -0
  223. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_snapshot_after_fork.py +0 -0
  224. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_sso.py +0 -0
  225. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_stream_exit_close.py +0 -0
  226. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_switching.py +0 -0
  227. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_tools.py +0 -0
  228. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_vercel.py +0 -0
  229. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_volume_backups.py +0 -0
  230. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_wake_awake.py +0 -0
  231. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_wallet.py +0 -0
  232. {withruntime-0.8.4 → withruntime-0.10.0}/tests/test_watch.py +0 -0
  233. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/audit.py +0 -0
  234. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/billing.py +0 -0
  235. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/desktop.py +0 -0
  236. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/images.py +0 -0
  237. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/mcp.py +0 -0
  238. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/mounts.py +0 -0
  239. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/network.py +0 -0
  240. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/network_products.py +0 -0
  241. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/observability.py +0 -0
  242. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/referrals.py +0 -0
  243. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/secrets.py +0 -0
  244. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/sso.py +0 -0
  245. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_async_products/switching.py +0 -0
  246. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/audit.py +0 -0
  247. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/billing.py +0 -0
  248. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/desktop.py +0 -0
  249. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/images.py +0 -0
  250. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/mcp.py +0 -0
  251. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/mounts.py +0 -0
  252. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/network.py +0 -0
  253. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/network_products.py +0 -0
  254. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/observability.py +0 -0
  255. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/referrals.py +0 -0
  256. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/secrets.py +0 -0
  257. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/sso.py +0 -0
  258. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_sync_products/switching.py +0 -0
  259. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_tunnel.py +0 -0
  260. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/_ws.py +0 -0
  261. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/__init__.py +0 -0
  262. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/agents.py +0 -0
  263. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/__init__.py +0 -0
  264. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/__init__.py +0 -0
  265. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/applications/__init__.py +0 -0
  266. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/applications/list_application_revisions.py +0 -0
  267. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/compute/__init__.py +0 -0
  268. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/compute/get_sandbox.py +0 -0
  269. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/compute/update_sandbox.py +0 -0
  270. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/functions/__init__.py +0 -0
  271. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/functions/create_function.py +0 -0
  272. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/images.py +0 -0
  273. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/api/workspaces.py +0 -0
  274. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/client.py +0 -0
  275. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/create_job_execution_request.py +0 -0
  276. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/create_job_execution_request_env.py +0 -0
  277. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/env.py +0 -0
  278. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/function.py +0 -0
  279. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/function_runtime.py +0 -0
  280. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/function_spec.py +0 -0
  281. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/metadata.py +0 -0
  282. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/models/workspace.py +0 -0
  283. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/client/types.py +0 -0
  284. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/common.py +0 -0
  285. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/drive.py +0 -0
  286. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/jobs.py +0 -0
  287. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/sandbox/__init__.py +0 -0
  288. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/core/sandbox/types.py +0 -0
  289. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/crewai.py +0 -0
  290. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/googleadk.py +0 -0
  291. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/langgraph.py +0 -0
  292. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/livekit.py +0 -0
  293. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/llamaindex.py +0 -0
  294. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/openai.py +0 -0
  295. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/pydantic.py +0 -0
  296. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/blaxel/telemetry.py +0 -0
  297. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/daytona/__init__.py +0 -0
  298. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/daytona/_async_io.py +0 -0
  299. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/daytona/_core.py +0 -0
  300. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/daytona/_sync_io.py +0 -0
  301. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/e2b/code_interpreter/__init__.py +0 -0
  302. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/inspect_ai.py +0 -0
  303. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/__init__.py +0 -0
  304. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/_async_io.py +0 -0
  305. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/_sync_io.py +0 -0
  306. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/api.py +0 -0
  307. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/sandbox/__init__.py +0 -0
  308. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/vercel/sandbox/sync.py +0 -0
  309. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/wallet.py +0 -0
  310. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime/webhooks.py +0 -0
  311. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime.egg-info/dependency_links.txt +0 -0
  312. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime.egg-info/entry_points.txt +0 -0
  313. {withruntime-0.8.4 → withruntime-0.10.0}/withruntime.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: withruntime
3
- Version: 0.8.4
3
+ Version: 0.10.0
4
4
  Summary: Runtime Cloud: one client (sync and async) for every Runtime product. Sandboxes first.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://withruntime.com
@@ -11,6 +11,8 @@ Keywords: sandbox,ai-agents,agents,microvm,firecracker,code-execution,code-inter
11
11
  Requires-Python: >=3.10
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
+ Provides-Extra: e2b
15
+ Requires-Dist: httpx<1.0.0,>=0.27.0; extra == "e2b"
14
16
  Provides-Extra: openai-agents
15
17
  Requires-Dist: openai-agents>=0.22.3; extra == "openai-agents"
16
18
  Provides-Extra: deepagents
@@ -42,7 +44,8 @@ command-line argument.
42
44
  from withruntime import Sandbox
43
45
 
44
46
  with Sandbox.create() as sbx:
45
- result = sbx.exec("python3 -c 'print(6 * 7)'")
47
+ sbx.files.write("/workspace/invoice.py", "print(sum([125, 250, 375]))\n")
48
+ result = sbx.exec("python3 /workspace/invoice.py")
46
49
  print(result.exit_code, result.stdout)
47
50
  ```
48
51
 
@@ -51,6 +54,8 @@ leaving the `with` block stops it. With no arguments you get the free trial
51
54
  while it lasts: 100 free hours, no card, up to eight sandboxes running at once.
52
55
  The current default image includes NumPy, pandas and matplotlib; see the
53
56
  [sandbox environment](https://withruntime.com/docs/sandbox-environment).
57
+ Omitting `funding` can use prepaid credit after the trial is exhausted. Use
58
+ `Sandbox.create(funding="trial")` for free use only; it never falls back to paid.
54
59
  `AsyncRuntime` is the same client for asyncio, method for method:
55
60
 
56
61
  ```python
@@ -70,22 +75,31 @@ asyncio.run(main())
70
75
  A sandbox has `exec`, `exec_stream`, `spawn`, `terminal`, `forward_port` (any
71
76
  TCP port in the sandbox on a local port), `files` (read, write,
72
77
  list, glob, stat, move, remove, upload and download directories), `pause`,
73
- `wake`, `extend`, `update`, `keep_alive`, `fork` and `snapshot`, and the
78
+ `wake`, `extend`, `update` (its name, environment and settings), `keep_alive`,
79
+ `fork`, `snapshot`, `switch_image` (move it to a new image keeping /workspace)
80
+ and `delete` (remove it for good), and the
74
81
  `interpreter`, `network`, `previews`, `desktop`, `mounts` (your S3, R2 or Google
75
- Cloud Storage bucket as a folder), `metrics` and `mcp` (servers from the MCP
76
- catalog, run in the sandbox) products. A paused sandbox
82
+ Cloud Storage bucket as a folder), `tailscale` (a paid sandbox on your own
83
+ tailnet), `metrics` and `mcp` (servers from the MCP catalog, run in the
84
+ sandbox) products. A paused sandbox
77
85
  also wakes by itself on the next call, and `Sandbox.get_or_create(name)` returns
78
86
  the sandbox with that name or creates it. A sandbox pauses itself after 60 seconds
79
87
  with nothing happening in it, keeping its memory and processes, so an
80
88
  idle sandbox costs no compute; `idle_pause_seconds` sets 10 to 86,400, or 0 for
81
- never. The client has `sandboxes`, `images`, `volumes`, `snapshots`,
89
+ never. `runtime.sandbox`, `snapshot`, `image`, `volume`, `job`, `domain`,
90
+ `port` and `address` name the products as the CLI does. Their existing plural
91
+ names remain aliases of the same product clients. The client has `sandboxes`, `images`, `volumes`, `snapshots`, `jobs`,
82
92
  `secrets`, `limits`, `feedback` and `support`; `webhooks`, `events`, `otel` and
83
93
  `audit` to watch the account; `domains`, `ports`, `addresses`, `tunnel` and
84
94
  `network` to connect sandboxes to your own world (paid accounts); and `mcp`,
85
95
  `sso`, `billing`, `referrals` and `switching`. `runtime.limits.get()` (0.3.1 and later) says whether the key is read-only and
86
96
  what its agent may still spend today. Every write carries an
87
97
  idempotency key, so retries never do anything twice; errors are typed and carry
88
- `code`, `hint` and `request_id`.
98
+ `code`, `hint` and `request_id`. `RuntimeAPIError` and
99
+ `RuntimeConnectionError` name the SDK errors without shadowing Python's built-in
100
+ errors; the previous `RuntimeError` and `ConnectionError` exports remain aliases.
101
+ `runtime.usage_requests("7d")` reads the account's API call counts and error rates;
102
+ counts are exact decimal strings, and an empty window has `errorPercent: None`.
89
103
 
90
104
  ## Behind a proxy
91
105
 
@@ -104,7 +118,7 @@ proxy http://proxy.internal:3128 (HTTPS_PROXY).`
104
118
 
105
119
  ## Code written for E2B
106
120
 
107
- `withruntime.e2b` runs code written for E2B's Python SDK on Runtime. Change
121
+ `withruntime.e2b` translates supported E2B Python sandbox calls. Change
108
122
  the import and set `RUNTIME_API_KEY`:
109
123
 
110
124
  ```python no-run
@@ -142,7 +156,7 @@ JavaScript package list every mapping and gap.
142
156
 
143
157
  ## Code written for Blaxel
144
158
 
145
- `withruntime.blaxel` runs code written for Blaxel's Python SDK (`blaxel`
159
+ `withruntime.blaxel` translates supported Blaxel Python sandbox calls (`blaxel`
146
160
  0.4.11) on Runtime. Change the import and set `RUNTIME_API_KEY`, or run
147
161
  `npx withruntime login` once:
148
162
 
@@ -19,7 +19,8 @@ command-line argument.
19
19
  from withruntime import Sandbox
20
20
 
21
21
  with Sandbox.create() as sbx:
22
- result = sbx.exec("python3 -c 'print(6 * 7)'")
22
+ sbx.files.write("/workspace/invoice.py", "print(sum([125, 250, 375]))\n")
23
+ result = sbx.exec("python3 /workspace/invoice.py")
23
24
  print(result.exit_code, result.stdout)
24
25
  ```
25
26
 
@@ -28,6 +29,8 @@ leaving the `with` block stops it. With no arguments you get the free trial
28
29
  while it lasts: 100 free hours, no card, up to eight sandboxes running at once.
29
30
  The current default image includes NumPy, pandas and matplotlib; see the
30
31
  [sandbox environment](https://withruntime.com/docs/sandbox-environment).
32
+ Omitting `funding` can use prepaid credit after the trial is exhausted. Use
33
+ `Sandbox.create(funding="trial")` for free use only; it never falls back to paid.
31
34
  `AsyncRuntime` is the same client for asyncio, method for method:
32
35
 
33
36
  ```python
@@ -47,22 +50,31 @@ asyncio.run(main())
47
50
  A sandbox has `exec`, `exec_stream`, `spawn`, `terminal`, `forward_port` (any
48
51
  TCP port in the sandbox on a local port), `files` (read, write,
49
52
  list, glob, stat, move, remove, upload and download directories), `pause`,
50
- `wake`, `extend`, `update`, `keep_alive`, `fork` and `snapshot`, and the
53
+ `wake`, `extend`, `update` (its name, environment and settings), `keep_alive`,
54
+ `fork`, `snapshot`, `switch_image` (move it to a new image keeping /workspace)
55
+ and `delete` (remove it for good), and the
51
56
  `interpreter`, `network`, `previews`, `desktop`, `mounts` (your S3, R2 or Google
52
- Cloud Storage bucket as a folder), `metrics` and `mcp` (servers from the MCP
53
- catalog, run in the sandbox) products. A paused sandbox
57
+ Cloud Storage bucket as a folder), `tailscale` (a paid sandbox on your own
58
+ tailnet), `metrics` and `mcp` (servers from the MCP catalog, run in the
59
+ sandbox) products. A paused sandbox
54
60
  also wakes by itself on the next call, and `Sandbox.get_or_create(name)` returns
55
61
  the sandbox with that name or creates it. A sandbox pauses itself after 60 seconds
56
62
  with nothing happening in it, keeping its memory and processes, so an
57
63
  idle sandbox costs no compute; `idle_pause_seconds` sets 10 to 86,400, or 0 for
58
- never. The client has `sandboxes`, `images`, `volumes`, `snapshots`,
64
+ never. `runtime.sandbox`, `snapshot`, `image`, `volume`, `job`, `domain`,
65
+ `port` and `address` name the products as the CLI does. Their existing plural
66
+ names remain aliases of the same product clients. The client has `sandboxes`, `images`, `volumes`, `snapshots`, `jobs`,
59
67
  `secrets`, `limits`, `feedback` and `support`; `webhooks`, `events`, `otel` and
60
68
  `audit` to watch the account; `domains`, `ports`, `addresses`, `tunnel` and
61
69
  `network` to connect sandboxes to your own world (paid accounts); and `mcp`,
62
70
  `sso`, `billing`, `referrals` and `switching`. `runtime.limits.get()` (0.3.1 and later) says whether the key is read-only and
63
71
  what its agent may still spend today. Every write carries an
64
72
  idempotency key, so retries never do anything twice; errors are typed and carry
65
- `code`, `hint` and `request_id`.
73
+ `code`, `hint` and `request_id`. `RuntimeAPIError` and
74
+ `RuntimeConnectionError` name the SDK errors without shadowing Python's built-in
75
+ errors; the previous `RuntimeError` and `ConnectionError` exports remain aliases.
76
+ `runtime.usage_requests("7d")` reads the account's API call counts and error rates;
77
+ counts are exact decimal strings, and an empty window has `errorPercent: None`.
66
78
 
67
79
  ## Behind a proxy
68
80
 
@@ -81,7 +93,7 @@ proxy http://proxy.internal:3128 (HTTPS_PROXY).`
81
93
 
82
94
  ## Code written for E2B
83
95
 
84
- `withruntime.e2b` runs code written for E2B's Python SDK on Runtime. Change
96
+ `withruntime.e2b` translates supported E2B Python sandbox calls. Change
85
97
  the import and set `RUNTIME_API_KEY`:
86
98
 
87
99
  ```python no-run
@@ -119,7 +131,7 @@ JavaScript package list every mapping and gap.
119
131
 
120
132
  ## Code written for Blaxel
121
133
 
122
- `withruntime.blaxel` runs code written for Blaxel's Python SDK (`blaxel`
134
+ `withruntime.blaxel` translates supported Blaxel Python sandbox calls (`blaxel`
123
135
  0.4.11) on Runtime. Change the import and set `RUNTIME_API_KEY`, or run
124
136
  `npx withruntime login` once:
125
137
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "withruntime"
7
- version = "0.8.4"
7
+ version = "0.10.0"
8
8
  description = "Runtime Cloud: one client (sync and async) for every Runtime product. Sandboxes first."
9
9
  readme = "README.md"
10
10
  license = { text = "Apache-2.0" }
@@ -19,6 +19,8 @@ Source = "https://github.com/withruntime/runtime/tree/main/sdks/python"
19
19
  Issues = "https://github.com/withruntime/runtime/issues"
20
20
 
21
21
  [project.optional-dependencies]
22
+ # Preserve E2B's HTTP file-transfer timeout exception types.
23
+ e2b = ["httpx>=0.27.0,<1.0.0"]
22
24
  # withruntime.openai_agents: a sandbox client for the OpenAI Agents SDK's SandboxAgent.
23
25
  openai-agents = ["openai-agents>=0.22.3"]
24
26
  # withruntime.deepagents: a LangChain Deep Agents sandbox backend.
@@ -34,3 +36,6 @@ withruntime = "withruntime.inspect_ai"
34
36
  [tool.setuptools.packages.find]
35
37
  where = ["."]
36
38
  include = ["withruntime*"]
39
+
40
+ [tool.setuptools.package-data]
41
+ withruntime = ["py.typed"]