code-sandboxes 1.9.5__tar.gz → 1.9.7__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 (262) hide show
  1. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/CHANGELOG.md +19 -0
  2. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/PKG-INFO +1 -1
  3. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/__version__.py +1 -1
  4. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/attest.py +11 -0
  5. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/bases.py +10 -4
  6. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_attest.py +4 -0
  7. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_bases.py +3 -2
  8. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.github/workflows/build.yml +0 -0
  9. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.github/workflows/environments-live.yml +0 -0
  10. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.github/workflows/py-code-style.yml +0 -0
  11. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.github/workflows/py-tests.yml +0 -0
  12. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.github/workflows/py-typing.yml +0 -0
  13. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.github/workflows/reusable-python.yml +0 -0
  14. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.gitignore +0 -0
  15. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.licenserc.yaml +0 -0
  16. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.pre-commit-config.yaml +0 -0
  17. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/.vscode/settings.json +0 -0
  18. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/Dockerfile +0 -0
  19. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/LICENSE +0 -0
  20. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/Makefile +0 -0
  21. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/README.md +0 -0
  22. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/build.log +0 -0
  23. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/__init__.py +0 -0
  24. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/base.py +0 -0
  25. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/bridge_mount.py +0 -0
  26. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/builds.py +0 -0
  27. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/cli.py +0 -0
  28. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/client.py +0 -0
  29. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/cloudflare_sandbox.py +0 -0
  30. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/commands.py +0 -0
  31. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/console.py +0 -0
  32. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/contents.py +0 -0
  33. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/coreweave_sandbox.py +0 -0
  34. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/datalayer_sandbox.py +0 -0
  35. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/daytona_sandbox.py +0 -0
  36. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/docker_sandbox.py +0 -0
  37. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/e2b_sandbox.py +0 -0
  38. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/__init__.py +0 -0
  39. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/__main__.py +0 -0
  40. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/accounts.py +0 -0
  41. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/adapters/__init__.py +0 -0
  42. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/adapters/datalayer.py +0 -0
  43. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/adapters/daytona.py +0 -0
  44. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/adapters/e2b.py +0 -0
  45. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/adapters/managed.py +0 -0
  46. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/adapters/modal.py +0 -0
  47. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/breaker.py +0 -0
  48. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/build_secrets.py +0 -0
  49. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/builders.py +0 -0
  50. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/canonical.py +0 -0
  51. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/conformance.py +0 -0
  52. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/constraints/sandbox-contract-v1.txt +0 -0
  53. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/constraints/wheelhouse/README.md +0 -0
  54. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/constraints/wheelhouse/jupyter_server-2.21.0+datalayer.1-py3-none-any.whl +0 -0
  55. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/contract.py +0 -0
  56. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/doctor/__init__.py +0 -0
  57. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/doctor/build.py +0 -0
  58. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/doctor/datalayer_sandbox.py +0 -0
  59. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/doctor/report.schema.json +0 -0
  60. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/errors.py +0 -0
  61. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/files.py +0 -0
  62. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/image_import.py +0 -0
  63. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/lifecycle.py +0 -0
  64. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/policy.py +0 -0
  65. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/redact.py +0 -0
  66. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/resolve.py +0 -0
  67. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/schema.py +0 -0
  68. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/environments/spec.py +0 -0
  69. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/eval_sandbox.py +0 -0
  70. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/exceptions.py +0 -0
  71. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/filesystem.py +0 -0
  72. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/google_colab.py +0 -0
  73. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/google_colab_sandbox.py +0 -0
  74. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/interfaces.py +0 -0
  75. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/jupyter_ingress.py +0 -0
  76. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/jupyter_server_sandbox.py +0 -0
  77. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/kaggle.py +0 -0
  78. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/kaggle_execute.py +0 -0
  79. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/kaggle_live.py +0 -0
  80. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/kaggle_sandbox.py +0 -0
  81. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/lifecycle.py +0 -0
  82. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/manage.py +0 -0
  83. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/modal_sandbox.py +0 -0
  84. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/models.py +0 -0
  85. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/monty_sandbox.py +0 -0
  86. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/provider_ingress.py +0 -0
  87. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/code_sandboxes/providers.py +0 -0
  88. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docker/Dockerfile +0 -0
  89. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/.gitignore +0 -0
  90. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/LICENSE +0 -0
  91. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/Makefile +0 -0
  92. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/README.md +0 -0
  93. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/babel.config.js +0 -0
  94. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/api-reference/_category_.yml +0 -0
  95. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/api-reference/index.mdx +0 -0
  96. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/cli/_category_.yml +0 -0
  97. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/cli/index.mdx +0 -0
  98. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/contribute/_category_.yml +0 -0
  99. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/contribute/index.mdx +0 -0
  100. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/environments/_category_.yml +0 -0
  101. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/environments/contract.mdx +0 -0
  102. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/environments/index.mdx +0 -0
  103. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/environments/specification.mdx +0 -0
  104. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/environments/spike-2026-09.mdx +0 -0
  105. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/examples/_category_.yml +0 -0
  106. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/examples/index.mdx +0 -0
  107. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/guide/_category_.yml +0 -0
  108. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/guide/index.mdx +0 -0
  109. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/index.mdx +0 -0
  110. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/install/_category_.yml +0 -0
  111. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/install/index.mdx +0 -0
  112. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/provider-ingress.mdx +0 -0
  113. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/_category_.yml +0 -0
  114. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/cloudflare.mdx +0 -0
  115. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/coreweave.mdx +0 -0
  116. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/datalayer.mdx +0 -0
  117. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/daytona.mdx +0 -0
  118. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/docker.mdx +0 -0
  119. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/e2b.mdx +0 -0
  120. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/eval.mdx +0 -0
  121. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/google-colab.mdx +0 -0
  122. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/index.mdx +0 -0
  123. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/jupyter-server.mdx +0 -0
  124. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/kaggle.mdx +0 -0
  125. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/modal.mdx +0 -0
  126. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docs/providers/monty.mdx +0 -0
  127. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/docusaurus.config.js +0 -0
  128. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/package.json +0 -0
  129. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/sidebars.js +0 -0
  130. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/components/HomepageRow1.js +0 -0
  131. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/components/HomepageRow1.module.css +0 -0
  132. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/components/HomepageRow2.js +0 -0
  133. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/components/HomepageRow2.module.css +0 -0
  134. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/components/HomepageRow3.js +0 -0
  135. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/components/HomepageRow3.module.css +0 -0
  136. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/css/custom.css +0 -0
  137. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/pages/index.module.css +0 -0
  138. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/pages/markdown-page.md +0 -0
  139. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/theme/CustomDocItem.tsx +0 -0
  140. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/src/theme/IconsTitle.tsx +0 -0
  141. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/bricks.svg +0 -0
  142. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/building-construction.svg +0 -0
  143. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/cloud-sun.svg +0 -0
  144. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/cloud.svg +0 -0
  145. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/collaboration.svg +0 -0
  146. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/copy-left.svg +0 -0
  147. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/datalayer/logo.png +0 -0
  148. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/datalayer/logo.svg +0 -0
  149. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/datalayer/personas/business.svg +0 -0
  150. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/datalayer/personas/data-scientist.svg +0 -0
  151. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/datalayer/personas/devops.svg +0 -0
  152. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/datalayer/project/project-line.svg +0 -0
  153. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/favicon.ico +0 -0
  154. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/jupyter.svg +0 -0
  155. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/open-source.svg +0 -0
  156. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/react-js.svg +0 -0
  157. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/react-js2.svg +0 -0
  158. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/ringed-planet.svg +0 -0
  159. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/robot.svg +0 -0
  160. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/rocket.svg +0 -0
  161. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/shield.svg +0 -0
  162. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/sparkles.svg +0 -0
  163. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/streamlit.gif +0 -0
  164. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/super-hero.svg +0 -0
  165. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/target.svg +0 -0
  166. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/docs/static/img/thumbs-up.svg +0 -0
  167. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/README.md +0 -0
  168. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/Makefile +0 -0
  169. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/cloudflare_sandbox_example.py +0 -0
  170. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/coreweave_sandbox_example.py +0 -0
  171. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/datalayer_sandbox_example.py +0 -0
  172. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/daytona_sandbox_example.py +0 -0
  173. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/docker_sandbox_example.py +0 -0
  174. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/e2b_sandbox_example.py +0 -0
  175. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/eval_sandbox_example.py +0 -0
  176. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/google_colab_sandbox_example.py +0 -0
  177. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/jupyter_server_sandbox_example.py +0 -0
  178. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/kaggle_sandbox_example.py +0 -0
  179. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/modal_sandbox_example.py +0 -0
  180. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/exec/monty_sandbox_example.py +0 -0
  181. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/Makefile +0 -0
  182. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/cloudflare_sandbox_example.py +0 -0
  183. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/coreweave_sandbox_example.py +0 -0
  184. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/datalayer_sandbox_example.py +0 -0
  185. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/daytona_sandbox_example.py +0 -0
  186. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/docker_sandbox_example.py +0 -0
  187. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/e2b_sandbox_example.py +0 -0
  188. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/eval_sandbox_example.py +0 -0
  189. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/google_colab_sandbox_example.py +0 -0
  190. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/jupyter_server_sandbox_example.py +0 -0
  191. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/kaggle_sandbox_example.py +0 -0
  192. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/modal_sandbox_example.py +0 -0
  193. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/examples/repl/monty_sandbox_example.py +0 -0
  194. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/pyproject.toml +0 -0
  195. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/schemas/environment-v1alpha1.json +0 -0
  196. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/__init__.py +0 -0
  197. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/conftest.py +0 -0
  198. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_a_datalayer_sandbox_can_be_interrupted.py +0 -0
  199. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_bridge_mount.py +0 -0
  200. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_builds.py +0 -0
  201. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_cli_exec.py +0 -0
  202. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_cli_repl.py +0 -0
  203. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_client.py +0 -0
  204. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_client_contents.py +0 -0
  205. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_client_files.py +0 -0
  206. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_client_outcome_error_output.py +0 -0
  207. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_cloudflare.py +0 -0
  208. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_commands_envelope.py +0 -0
  209. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_console.py +0 -0
  210. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_contents_contract.py +0 -0
  211. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_contents_live_matrix.py +0 -0
  212. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_coreweave.py +0 -0
  213. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_datalayer_sandbox.py +0 -0
  214. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_daytona.py +0 -0
  215. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_e2b.py +0 -0
  216. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_accounts.py +0 -0
  217. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_breaker.py +0 -0
  218. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_build_secrets.py +0 -0
  219. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_builders.py +0 -0
  220. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_canonical.py +0 -0
  221. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_conformance.py +0 -0
  222. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_constraints.py +0 -0
  223. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_contract.py +0 -0
  224. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_cross_variant_report.py +0 -0
  225. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_datalayer_builder.py +0 -0
  226. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_daytona_builder.py +0 -0
  227. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_doctor.py +0 -0
  228. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_e2b_builder.py +0 -0
  229. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_errors.py +0 -0
  230. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_image_import.py +0 -0
  231. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_lifecycle.py +0 -0
  232. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_live_matrix.py +0 -0
  233. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_managed_builders.py +0 -0
  234. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_modal_builder.py +0 -0
  235. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_redact.py +0 -0
  236. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_resolve.py +0 -0
  237. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_environment_spec.py +0 -0
  238. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_eval.py +0 -0
  239. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_every_variant_has_a_real_interrupt.py +0 -0
  240. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_factory.py +0 -0
  241. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_google_colab.py +0 -0
  242. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_integration.py +0 -0
  243. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_jupyter_ingress.py +0 -0
  244. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_jupyter_server.py +0 -0
  245. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_jupyter_server_streaming.py +0 -0
  246. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_kaggle.py +0 -0
  247. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_kaggle_execute.py +0 -0
  248. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_kaggle_live.py +0 -0
  249. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_kaggle_session.py +0 -0
  250. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_kernel_client_compatibility.py +0 -0
  251. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_lifecycle_vocabulary.py +0 -0
  252. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_manage.py +0 -0
  253. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_manage_datalayer.py +0 -0
  254. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_modal_google_colab_sandbox.py +0 -0
  255. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_modal_session.py +0 -0
  256. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_models.py +0 -0
  257. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_output_line_fidelity.py +0 -0
  258. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_provider_catalog_names.py +0 -0
  259. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_provider_ingress.py +0 -0
  260. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_providers.py +0 -0
  261. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_sandboxes.py +0 -0
  262. {code_sandboxes-1.9.5 → code_sandboxes-1.9.7}/tests/test_the_kill_relaunch_drill.py +0 -0
@@ -8,6 +8,25 @@
8
8
 
9
9
  ## Unreleased
10
10
 
11
+ ## 1.9.7
12
+
13
+ - **cosign signs again under `--use-signing-config=false`** (`environments
14
+ .attest`; PLAN_ENV.md E1-09). cosign 3.1.3 defaults `--use-signing-config`
15
+ to `true`: a TUF-provided signing config now names the service URLs,
16
+ including a transparency log, and `--tlog-upload=false` alone no longer
17
+ overrides that — cosign refused the combination outright (found live on
18
+ r1, 2026-09-14, the first real signature this pipeline ever attempted).
19
+ Turning the signing config off restores the plain, flag-driven behavior
20
+ `--tlog-upload=false` already asks for.
21
+
22
+ ## 1.9.6
23
+
24
+ - **`datalayer/python-cpu`'s `2026.09` channel points at the patched base**
25
+ (`environments.bases`; PLAN_ENV.md E1-05, E1-08). `jupyter-python` 0.2.2
26
+ upgrades the Ubuntu security packages and conda's own OpenSSL, and drops
27
+ JupyterLab's staging `yarn.lock` — the 31 fixable-critical findings that
28
+ blocked every build from the prior digest under the default scan policy.
29
+
11
30
  ## 1.9.5
12
31
 
13
32
  - **Attest waits for a just-pushed image's scan to exist**
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: code_sandboxes
3
- Version: 1.9.5
3
+ Version: 1.9.7
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.5"
6
+ __version__ = "1.9.7"
@@ -380,6 +380,17 @@ class Attestor:
380
380
  # even answer. The matching verify-side omission is fixed in
381
381
  # `datalayer_operator.services.environment_signatures`.
382
382
  "--tlog-upload=false",
383
+ # cosign 3.1.3 defaults `--use-signing-config` to `true`: a
384
+ # TUF-provided signing config now names the service URLs,
385
+ # including a transparency log, and `--tlog-upload=false` alone
386
+ # no longer overrides that — cosign refuses the combination
387
+ # outright, "not supported with --signing-config or
388
+ # --use-signing-config" (found live, 2026-09-14, the first real
389
+ # sign this worker's own pinned cosign ever ran). Turning the
390
+ # signing config off restores the plain, flag-driven behavior
391
+ # `--tlog-upload=false` already asks for, and needs no network
392
+ # call of its own to fetch one.
393
+ "--use-signing-config=false",
383
394
  "--key",
384
395
  self._key,
385
396
  reference,
@@ -108,9 +108,15 @@ class ApprovedBase(BaseModel):
108
108
  APPROVED_BASES: dict[str, ApprovedBase] = {
109
109
  base.ref: base
110
110
  for base in (
111
- # E1-05: jupyter-python:0.2.1 (the restored fork) plus the contract layer,
112
- # released 2026-09-12 to environments/base/python-cpu. One image, so every
113
- # variant pins the same digest until a variant needs a base of its own.
111
+ # E1-05: jupyter-python:0.2.2 (Ubuntu security packages and conda's own
112
+ # OpenSSL upgraded, JupyterLab's staging yarn.lock dropped) plus the
113
+ # contract layer, released 2026-09-14 to environments/base/python-cpu.
114
+ # One image, so every variant pins the same digest until a variant
115
+ # needs a base of its own. The prior digest, jupyter-python:0.2.1,
116
+ # carried 31 fixable-critical findings the scan (E1-08) blocks every
117
+ # build on; this one carries none the default policy does not already
118
+ # name (`policy.py`'s own `_BASE_CHANNEL_ALLOWED`, five ESM-locked
119
+ # ffmpeg/libcjson1 advisories, reviewed the same day).
114
120
  ApprovedBase(
115
121
  ref="datalayer/python-cpu",
116
122
  python_versions=("3.13",),
@@ -119,7 +125,7 @@ APPROVED_BASES: dict[str, ApprovedBase] = {
119
125
  # `.spec.VARIANTS`, spelled out: `spec` imports from this
120
126
  # module, so importing it back here would be circular.
121
127
  ("datalayer", "e2b", "daytona", "modal"),
122
- "sha256:cd09308a0c5e5adeec7fb5d8d29cf7455e78ba86f5c6c095a79068a280e1254f",
128
+ "sha256:334adf6c2714c8919ef60beeca1db12e3531a391c9dde41932c782f81c432b36",
123
129
  )
124
130
  },
125
131
  snapshots={"2026.09": "20260914T150000Z"},
@@ -418,6 +418,10 @@ class TestTheSignature:
418
418
  # default and prompts for consent to publish an immutable
419
419
  # record — the wrong default for a private environment.
420
420
  "--tlog-upload=false",
421
+ # cosign 3.1.3 defaults to a TUF-provided signing config that
422
+ # `--tlog-upload=false` alone can no longer override (found live
423
+ # 2026-09-14): turned off so the plain flag is honored again.
424
+ "--use-signing-config=false",
421
425
  "--key",
422
426
  KEY,
423
427
  f"{REGISTRY}/{REPOSITORY}@{DIGEST}",
@@ -52,9 +52,10 @@ def test_the_2026_09_channel_of_python_cuda_has_no_digest_until_it_is_pushed(
52
52
  def test_the_2026_09_channel_of_python_cpu_resolves_the_digest_its_release_pushed(
53
53
  variant: str,
54
54
  ) -> None:
55
- """PLAN_ENV.md, E1-05: released 2026-09-12, same digest for every variant."""
55
+ """PLAN_ENV.md, E1-05: released 2026-09-14 (jupyter-python 0.2.2, E1-08's
56
+ scan fix), same digest for every variant."""
56
57
  ref = "datalayer/python-cpu"
57
- digest = "sha256:cd09308a0c5e5adeec7fb5d8d29cf7455e78ba86f5c6c095a79068a280e1254f"
58
+ digest = "sha256:334adf6c2714c8919ef60beeca1db12e3531a391c9dde41932c782f81c432b36"
58
59
  assert APPROVED_BASES[ref].channels == {"2026.09": dict.fromkeys(VARIANTS, digest)}
59
60
  assert resolve_base(ref, "2026.09", variant) == digest
60
61
 
File without changes
File without changes
File without changes
File without changes