code-sandboxes 1.9.33__tar.gz → 1.9.34__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 (266) hide show
  1. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/PKG-INFO +1 -1
  2. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/__version__.py +1 -1
  3. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/daytona.py +19 -3
  4. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/bases.py +8 -5
  5. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_bases.py +1 -1
  6. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_daytona_builder.py +19 -0
  7. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.github/workflows/build.yml +0 -0
  8. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.github/workflows/environments-live.yml +0 -0
  9. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.github/workflows/py-code-style.yml +0 -0
  10. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.github/workflows/py-tests.yml +0 -0
  11. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.github/workflows/py-typing.yml +0 -0
  12. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.github/workflows/reusable-python.yml +0 -0
  13. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.gitignore +0 -0
  14. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.licenserc.yaml +0 -0
  15. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.pre-commit-config.yaml +0 -0
  16. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/.vscode/settings.json +0 -0
  17. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/CHANGELOG.md +0 -0
  18. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/Dockerfile +0 -0
  19. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/LICENSE +0 -0
  20. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/Makefile +0 -0
  21. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/README.md +0 -0
  22. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/__init__.py +0 -0
  23. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/base.py +0 -0
  24. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/bridge_mount.py +0 -0
  25. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/builds.py +0 -0
  26. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/cli.py +0 -0
  27. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/client.py +0 -0
  28. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/cloudflare_sandbox.py +0 -0
  29. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/commands.py +0 -0
  30. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/console.py +0 -0
  31. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/contents.py +0 -0
  32. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/coreweave_sandbox.py +0 -0
  33. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/datalayer_sandbox.py +0 -0
  34. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/daytona_sandbox.py +0 -0
  35. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/docker_sandbox.py +0 -0
  36. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/e2b_sandbox.py +0 -0
  37. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/__init__.py +0 -0
  38. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/__main__.py +0 -0
  39. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/accounts.py +0 -0
  40. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/__init__.py +0 -0
  41. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/datalayer.py +0 -0
  42. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/e2b.py +0 -0
  43. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/managed.py +0 -0
  44. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/modal.py +0 -0
  45. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/attest.py +0 -0
  46. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/breaker.py +0 -0
  47. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/build_secrets.py +0 -0
  48. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/builders.py +0 -0
  49. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/canonical.py +0 -0
  50. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/conformance.py +0 -0
  51. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/constraints/sandbox-contract-v1.txt +0 -0
  52. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/constraints/wheelhouse/README.md +0 -0
  53. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/constraints/wheelhouse/jupyter_server-2.21.0+datalayer.1-py3-none-any.whl +0 -0
  54. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/contract.py +0 -0
  55. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/__init__.py +0 -0
  56. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/build.py +0 -0
  57. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/datalayer_sandbox.py +0 -0
  58. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/report.schema.json +0 -0
  59. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/errors.py +0 -0
  60. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/files.py +0 -0
  61. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/image_import.py +0 -0
  62. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/lifecycle.py +0 -0
  63. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/policy.py +0 -0
  64. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/redact.py +0 -0
  65. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/resolve.py +0 -0
  66. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/resolve_conda.py +0 -0
  67. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/schema.py +0 -0
  68. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/environments/spec.py +0 -0
  69. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/eval_sandbox.py +0 -0
  70. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/exceptions.py +0 -0
  71. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/filesystem.py +0 -0
  72. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/google_colab.py +0 -0
  73. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/google_colab_sandbox.py +0 -0
  74. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/interfaces.py +0 -0
  75. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/jupyter_ingress.py +0 -0
  76. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/jupyter_server_sandbox.py +0 -0
  77. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/kaggle.py +0 -0
  78. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/kaggle_execute.py +0 -0
  79. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/kaggle_live.py +0 -0
  80. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/kaggle_sandbox.py +0 -0
  81. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/lifecycle.py +0 -0
  82. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/manage.py +0 -0
  83. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/modal_sandbox.py +0 -0
  84. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/models.py +0 -0
  85. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/monty_sandbox.py +0 -0
  86. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/provider_ingress.py +0 -0
  87. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/code_sandboxes/providers.py +0 -0
  88. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docker/Dockerfile +0 -0
  89. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/.gitignore +0 -0
  90. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/LICENSE +0 -0
  91. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/Makefile +0 -0
  92. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/README.md +0 -0
  93. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/babel.config.js +0 -0
  94. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/api-reference/_category_.yml +0 -0
  95. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/api-reference/index.mdx +0 -0
  96. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/cli/_category_.yml +0 -0
  97. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/cli/index.mdx +0 -0
  98. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/contribute/_category_.yml +0 -0
  99. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/contribute/index.mdx +0 -0
  100. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/environments/_category_.yml +0 -0
  101. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/environments/contract.mdx +0 -0
  102. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/environments/index.mdx +0 -0
  103. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/environments/specification.mdx +0 -0
  104. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/environments/spike-2026-09.mdx +0 -0
  105. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/examples/_category_.yml +0 -0
  106. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/examples/index.mdx +0 -0
  107. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/guide/_category_.yml +0 -0
  108. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/guide/index.mdx +0 -0
  109. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/index.mdx +0 -0
  110. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/install/_category_.yml +0 -0
  111. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/install/index.mdx +0 -0
  112. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/provider-ingress.mdx +0 -0
  113. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/_category_.yml +0 -0
  114. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/cloudflare.mdx +0 -0
  115. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/coreweave.mdx +0 -0
  116. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/datalayer.mdx +0 -0
  117. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/daytona.mdx +0 -0
  118. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/docker.mdx +0 -0
  119. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/e2b.mdx +0 -0
  120. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/eval.mdx +0 -0
  121. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/google-colab.mdx +0 -0
  122. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/index.mdx +0 -0
  123. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/jupyter-server.mdx +0 -0
  124. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/kaggle.mdx +0 -0
  125. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/modal.mdx +0 -0
  126. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docs/providers/monty.mdx +0 -0
  127. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/docusaurus.config.js +0 -0
  128. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/package.json +0 -0
  129. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/sidebars.js +0 -0
  130. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow1.js +0 -0
  131. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow1.module.css +0 -0
  132. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow2.js +0 -0
  133. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow2.module.css +0 -0
  134. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow3.js +0 -0
  135. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow3.module.css +0 -0
  136. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/css/custom.css +0 -0
  137. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/pages/index.module.css +0 -0
  138. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/pages/markdown-page.md +0 -0
  139. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/theme/CustomDocItem.tsx +0 -0
  140. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/src/theme/IconsTitle.tsx +0 -0
  141. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/bricks.svg +0 -0
  142. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/building-construction.svg +0 -0
  143. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/cloud-sun.svg +0 -0
  144. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/cloud.svg +0 -0
  145. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/collaboration.svg +0 -0
  146. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/copy-left.svg +0 -0
  147. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/datalayer/logo.png +0 -0
  148. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/datalayer/logo.svg +0 -0
  149. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/datalayer/personas/business.svg +0 -0
  150. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/datalayer/personas/data-scientist.svg +0 -0
  151. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/datalayer/personas/devops.svg +0 -0
  152. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/datalayer/project/project-line.svg +0 -0
  153. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/favicon.ico +0 -0
  154. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/jupyter.svg +0 -0
  155. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/open-source.svg +0 -0
  156. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/react-js.svg +0 -0
  157. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/react-js2.svg +0 -0
  158. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/ringed-planet.svg +0 -0
  159. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/robot.svg +0 -0
  160. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/rocket.svg +0 -0
  161. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/shield.svg +0 -0
  162. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/sparkles.svg +0 -0
  163. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/streamlit.gif +0 -0
  164. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/super-hero.svg +0 -0
  165. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/target.svg +0 -0
  166. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/docs/static/img/thumbs-up.svg +0 -0
  167. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/README.md +0 -0
  168. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/Makefile +0 -0
  169. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/cloudflare_sandbox_example.py +0 -0
  170. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/coreweave_sandbox_example.py +0 -0
  171. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/datalayer_sandbox_example.py +0 -0
  172. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/daytona_sandbox_example.py +0 -0
  173. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/docker_sandbox_example.py +0 -0
  174. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/e2b_sandbox_example.py +0 -0
  175. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/eval_sandbox_example.py +0 -0
  176. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/google_colab_sandbox_example.py +0 -0
  177. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/jupyter_server_sandbox_example.py +0 -0
  178. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/kaggle_sandbox_example.py +0 -0
  179. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/modal_sandbox_example.py +0 -0
  180. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/exec/monty_sandbox_example.py +0 -0
  181. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/Makefile +0 -0
  182. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/cloudflare_sandbox_example.py +0 -0
  183. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/coreweave_sandbox_example.py +0 -0
  184. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/datalayer_sandbox_example.py +0 -0
  185. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/daytona_sandbox_example.py +0 -0
  186. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/docker_sandbox_example.py +0 -0
  187. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/e2b_sandbox_example.py +0 -0
  188. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/eval_sandbox_example.py +0 -0
  189. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/google_colab_sandbox_example.py +0 -0
  190. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/jupyter_server_sandbox_example.py +0 -0
  191. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/kaggle_sandbox_example.py +0 -0
  192. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/modal_sandbox_example.py +0 -0
  193. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/examples/repl/monty_sandbox_example.py +0 -0
  194. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/pyproject.toml +0 -0
  195. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/schemas/environment-v1alpha1.json +0 -0
  196. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/__init__.py +0 -0
  197. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/conftest.py +0 -0
  198. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_a_datalayer_sandbox_can_be_interrupted.py +0 -0
  199. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_bridge_mount.py +0 -0
  200. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_builds.py +0 -0
  201. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_cli_exec.py +0 -0
  202. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_cli_repl.py +0 -0
  203. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_client.py +0 -0
  204. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_client_contents.py +0 -0
  205. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_client_files.py +0 -0
  206. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_client_outcome_error_output.py +0 -0
  207. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_cloudflare.py +0 -0
  208. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_commands_envelope.py +0 -0
  209. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_console.py +0 -0
  210. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_contents_contract.py +0 -0
  211. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_contents_live_matrix.py +0 -0
  212. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_coreweave.py +0 -0
  213. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_datalayer_sandbox.py +0 -0
  214. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_daytona.py +0 -0
  215. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_e2b.py +0 -0
  216. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_accounts.py +0 -0
  217. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_attest.py +0 -0
  218. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_breaker.py +0 -0
  219. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_build_secrets.py +0 -0
  220. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_builders.py +0 -0
  221. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_canonical.py +0 -0
  222. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_conformance.py +0 -0
  223. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_constraints.py +0 -0
  224. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_contract.py +0 -0
  225. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_cross_variant_report.py +0 -0
  226. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_datalayer_builder.py +0 -0
  227. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_dockerfile_source.py +0 -0
  228. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_doctor.py +0 -0
  229. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_e2b_builder.py +0 -0
  230. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_errors.py +0 -0
  231. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_image_import.py +0 -0
  232. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_lifecycle.py +0 -0
  233. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_live_matrix.py +0 -0
  234. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_managed_builders.py +0 -0
  235. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_modal_builder.py +0 -0
  236. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_organization_policy.py +0 -0
  237. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_redact.py +0 -0
  238. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_resolve.py +0 -0
  239. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_resolve_conda.py +0 -0
  240. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_spec.py +0 -0
  241. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_environment_spec_organization_policy.py +0 -0
  242. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_eval.py +0 -0
  243. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_every_variant_has_a_real_interrupt.py +0 -0
  244. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_factory.py +0 -0
  245. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_google_colab.py +0 -0
  246. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_integration.py +0 -0
  247. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_jupyter_ingress.py +0 -0
  248. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_jupyter_server.py +0 -0
  249. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_jupyter_server_streaming.py +0 -0
  250. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_kaggle.py +0 -0
  251. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_kaggle_execute.py +0 -0
  252. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_kaggle_live.py +0 -0
  253. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_kaggle_session.py +0 -0
  254. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_kernel_client_compatibility.py +0 -0
  255. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_lifecycle_vocabulary.py +0 -0
  256. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_manage.py +0 -0
  257. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_manage_datalayer.py +0 -0
  258. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_modal_google_colab_sandbox.py +0 -0
  259. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_modal_session.py +0 -0
  260. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_models.py +0 -0
  261. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_output_line_fidelity.py +0 -0
  262. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_provider_catalog_names.py +0 -0
  263. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_provider_ingress.py +0 -0
  264. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_providers.py +0 -0
  265. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_sandboxes.py +0 -0
  266. {code_sandboxes-1.9.33 → code_sandboxes-1.9.34}/tests/test_the_kill_relaunch_drill.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: code_sandboxes
3
- Version: 1.9.33
3
+ Version: 1.9.34
4
4
  Project-URL: Home, https://github.com/datalayer/code-sandboxes
5
5
  Author-email: Datalayer <info@datalayer.io>
6
6
  License: BSD 3-Clause License
@@ -3,4 +3,4 @@
3
3
 
4
4
  """Code Sandboxes."""
5
5
 
6
- __version__ = "1.9.33"
6
+ __version__ = "1.9.34"
@@ -468,6 +468,10 @@ class Builder(ManagedBuilder):
468
468
  timeout=self.max_build_seconds,
469
469
  )
470
470
  except Exception as error:
471
+ # Daytona keeps a snapshot that failed, in `error`, under
472
+ # the build's own name: one over its size limit was left
473
+ # there (E2-17, 2026-09-18). Nothing records it, so it goes.
474
+ self._discard_named(sdk, client, name)
471
475
  raise EnvironmentsError(
472
476
  BUILD_FAILED,
473
477
  f"The Daytona build failed: {error}",
@@ -682,12 +686,24 @@ class Builder(ManagedBuilder):
682
686
  self._cancelled.add(request.build_uid)
683
687
  sdk = self._daytona_sdk()
684
688
  client = self._client(sdk)
689
+ self._discard_named(sdk, client, _snapshot_name(request))
690
+
691
+ def _discard_named(self, sdk: Any, client: Any, name: str) -> None:
692
+ """Delete, by its id, the snapshot this build named, when Daytona has one.
693
+
694
+ A build's name is its own (the build uid is in it), so looking it up
695
+ by name cannot find another build's. Never a second reason to fail:
696
+ what could not be deleted is said in the log.
697
+ """
685
698
  try:
686
- snapshot = client.snapshot.get(_snapshot_name(request))
699
+ snapshot = client.snapshot.get(name)
687
700
  except Exception:
688
701
  return
689
- self._log(f"The build was cancelled: deleting the snapshot {snapshot.id} it was making")
690
- self._delete_by_id(sdk, client, snapshot.id)
702
+ self._log(f"Deleting the snapshot {snapshot.id} this build made, which nothing records")
703
+ try:
704
+ self._delete_by_id(sdk, client, snapshot.id)
705
+ except EnvironmentsError as error:
706
+ self._log(f"The snapshot {snapshot.id} could not be deleted: {error.message}")
691
707
 
692
708
  def smoke_test(
693
709
  self,
@@ -143,10 +143,13 @@ APPROVED_BASES: dict[str, ApprovedBase] = {
143
143
  },
144
144
  snapshots={"2026.09": "20260916T120000Z"},
145
145
  ),
146
- # E2-17: jupyter-python-cuda:0.3.1 (jupyter-python 0.2.2 and the CUDA
147
- # 12.8 toolkit, pinned) plus the same layer, released 2026-09-18 to
148
- # environments/base/python-cuda as `2026.09-bceb272088e4`. The doctor
149
- # passes all fifteen checks and `nvcc` answers 12.8 without a GPU.
146
+ # E2-17: jupyter-python-cuda:0.3.2 (jupyter-python 0.2.2 and CUDA 12.8's
147
+ # compiler and runtime headers, pinned) plus the same layer, released
148
+ # 2026-09-18 to environments/base/python-cuda as `2026.09-a3baa7b80931`.
149
+ # 6.9 GB: the first release carried the whole toolkit (15.7 GB), and a
150
+ # PyTorch environment on it made a snapshot Daytona refused, over its
151
+ # 20 GB limit. The doctor passes all fifteen checks and `nvcc` answers
152
+ # 12.8 without a GPU.
150
153
  ApprovedBase(
151
154
  ref="datalayer/python-cuda",
152
155
  python_versions=("3.13",),
@@ -155,7 +158,7 @@ APPROVED_BASES: dict[str, ApprovedBase] = {
155
158
  channels={
156
159
  "2026.09": dict.fromkeys(
157
160
  ("datalayer", "e2b", "daytona", "modal"),
158
- "sha256:a6374a2d4ff07c8a8fe0a71ee605964f93319894cc4152c4e2a1af6258ac9e6a",
161
+ "sha256:dc8f0015b4f7dbca92a88d2d6a4a96714b76f9a1af9dddd86835812493e40f08",
159
162
  )
160
163
  },
161
164
  # After its CUDA layer's own `apt-get update`, which ran that day.
@@ -32,7 +32,7 @@ def test_the_2026_09_channel_of_python_cuda_resolves_the_digest_its_release_push
32
32
  carrying the CUDA 12.8 toolkit a spec's `accelerator.cuda` may ask for."""
33
33
  base = APPROVED_BASES["datalayer/python-cuda"]
34
34
  assert resolve_base(base.ref, "2026.09", variant) == (
35
- "sha256:a6374a2d4ff07c8a8fe0a71ee605964f93319894cc4152c4e2a1af6258ac9e6a"
35
+ "sha256:dc8f0015b4f7dbca92a88d2d6a4a96714b76f9a1af9dddd86835812493e40f08"
36
36
  )
37
37
  assert (base.accelerator, base.cuda) == (True, "12.8")
38
38
 
@@ -950,6 +950,25 @@ class TestCancellingABuild:
950
950
  assert "cancelled" in raised.value.message
951
951
  assert [call.args for call in service.delete_calls] == [("snp-late",)]
952
952
 
953
+ def test_a_snapshot_daytona_refused_is_deleted_by_the_build(self) -> None:
954
+ """Daytona keeps a failed snapshot, in `error`, under the build's name:
955
+ one over its 20 GB limit was left there (E2-17, 2026-09-18)."""
956
+ failed = FakeSnapshot(id="snp-err", name=self.NAME, state="error")
957
+ service = FakeSnapshotService(
958
+ create_error=RuntimeError(
959
+ "Snapshot size (28.66GB) exceeds maximum allowed size of 20GB"
960
+ ),
961
+ get_results={self.NAME: failed, "snp-err": failed},
962
+ )
963
+ builder = a_builder(
964
+ daytona=FakeDaytonaModule(client=FakeDaytonaClient(snapshot_service=service))
965
+ )
966
+ with pytest.raises(EnvironmentsError) as raised:
967
+ builder.build(a_request())
968
+ assert raised.value.code.code == BUILD_FAILED.code
969
+ assert "20GB" in raised.value.message
970
+ assert [call.args for call in service.delete_calls] == [("snp-err",)]
971
+
953
972
  def test_another_build_of_the_same_builder_is_not_touched(self) -> None:
954
973
  builder = a_builder()
955
974
  builder.cancel(a_request(build_uid="bld-other"))
File without changes