code-sandboxes 1.9.32__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.
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/PKG-INFO +1 -1
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/__version__.py +1 -1
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/daytona.py +62 -3
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/bases.py +8 -5
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_bases.py +1 -1
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_daytona_builder.py +63 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.github/workflows/build.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.github/workflows/environments-live.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.github/workflows/py-code-style.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.github/workflows/py-tests.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.github/workflows/py-typing.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.github/workflows/reusable-python.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.gitignore +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.licenserc.yaml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.pre-commit-config.yaml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/.vscode/settings.json +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/CHANGELOG.md +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/Dockerfile +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/LICENSE +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/Makefile +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/README.md +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/__init__.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/base.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/bridge_mount.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/builds.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/cli.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/client.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/cloudflare_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/commands.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/console.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/contents.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/coreweave_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/datalayer_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/daytona_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/docker_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/e2b_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/__init__.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/__main__.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/accounts.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/__init__.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/datalayer.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/e2b.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/managed.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/modal.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/attest.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/breaker.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/build_secrets.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/builders.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/canonical.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/conformance.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/constraints/sandbox-contract-v1.txt +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/constraints/wheelhouse/README.md +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/constraints/wheelhouse/jupyter_server-2.21.0+datalayer.1-py3-none-any.whl +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/contract.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/__init__.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/build.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/datalayer_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/report.schema.json +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/errors.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/files.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/image_import.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/lifecycle.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/policy.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/redact.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/resolve.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/resolve_conda.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/schema.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/spec.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/eval_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/exceptions.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/filesystem.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/google_colab.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/google_colab_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/interfaces.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/jupyter_ingress.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/jupyter_server_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/kaggle.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/kaggle_execute.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/kaggle_live.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/kaggle_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/lifecycle.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/manage.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/modal_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/models.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/monty_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/provider_ingress.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/providers.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docker/Dockerfile +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/.gitignore +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/LICENSE +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/Makefile +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/README.md +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/babel.config.js +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/api-reference/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/api-reference/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/cli/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/cli/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/contribute/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/contribute/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/environments/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/environments/contract.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/environments/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/environments/specification.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/environments/spike-2026-09.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/examples/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/examples/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/guide/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/guide/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/install/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/install/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/provider-ingress.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/_category_.yml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/cloudflare.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/coreweave.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/datalayer.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/daytona.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/docker.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/e2b.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/eval.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/google-colab.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/index.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/jupyter-server.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/kaggle.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/modal.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docs/providers/monty.mdx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/docusaurus.config.js +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/package.json +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/sidebars.js +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow1.js +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow1.module.css +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow2.js +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow2.module.css +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow3.js +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/components/HomepageRow3.module.css +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/css/custom.css +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/pages/index.module.css +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/pages/markdown-page.md +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/theme/CustomDocItem.tsx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/src/theme/IconsTitle.tsx +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/bricks.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/building-construction.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/cloud-sun.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/cloud.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/collaboration.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/copy-left.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/datalayer/logo.png +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/datalayer/logo.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/datalayer/personas/business.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/datalayer/personas/data-scientist.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/datalayer/personas/devops.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/datalayer/project/project-line.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/favicon.ico +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/jupyter.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/open-source.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/react-js.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/react-js2.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/ringed-planet.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/robot.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/rocket.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/shield.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/sparkles.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/streamlit.gif +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/super-hero.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/target.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/docs/static/img/thumbs-up.svg +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/README.md +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/Makefile +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/cloudflare_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/coreweave_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/datalayer_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/daytona_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/docker_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/e2b_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/eval_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/google_colab_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/jupyter_server_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/kaggle_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/modal_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/exec/monty_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/Makefile +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/cloudflare_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/coreweave_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/datalayer_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/daytona_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/docker_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/e2b_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/eval_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/google_colab_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/jupyter_server_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/kaggle_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/modal_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/examples/repl/monty_sandbox_example.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/pyproject.toml +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/schemas/environment-v1alpha1.json +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/__init__.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/conftest.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_a_datalayer_sandbox_can_be_interrupted.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_bridge_mount.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_builds.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_cli_exec.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_cli_repl.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_client.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_client_contents.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_client_files.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_client_outcome_error_output.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_cloudflare.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_commands_envelope.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_console.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_contents_contract.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_contents_live_matrix.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_coreweave.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_datalayer_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_daytona.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_e2b.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_accounts.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_attest.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_breaker.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_build_secrets.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_builders.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_canonical.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_conformance.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_constraints.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_contract.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_cross_variant_report.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_datalayer_builder.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_dockerfile_source.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_doctor.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_e2b_builder.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_errors.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_image_import.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_lifecycle.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_live_matrix.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_managed_builders.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_modal_builder.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_organization_policy.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_redact.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_resolve.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_resolve_conda.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_spec.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_environment_spec_organization_policy.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_eval.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_every_variant_has_a_real_interrupt.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_factory.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_google_colab.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_integration.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_jupyter_ingress.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_jupyter_server.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_jupyter_server_streaming.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_kaggle.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_kaggle_execute.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_kaggle_live.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_kaggle_session.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_kernel_client_compatibility.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_lifecycle_vocabulary.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_manage.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_manage_datalayer.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_modal_google_colab_sandbox.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_modal_session.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_models.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_output_line_fidelity.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_provider_catalog_names.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_provider_ingress.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_providers.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_sandboxes.py +0 -0
- {code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/tests/test_the_kill_relaunch_drill.py +0 -0
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/daytona.py
RENAMED
|
@@ -82,6 +82,7 @@ requires of every GPU sandbox (`DaytonaSandbox` reads the snapshot's `gpu`).
|
|
|
82
82
|
|
|
83
83
|
from __future__ import annotations
|
|
84
84
|
|
|
85
|
+
import contextlib
|
|
85
86
|
import shlex
|
|
86
87
|
import tempfile
|
|
87
88
|
import uuid
|
|
@@ -163,6 +164,11 @@ def daytona_gpu(accelerator_type: str) -> str | None:
|
|
|
163
164
|
return name if name in DAYTONA_GPUS else None
|
|
164
165
|
|
|
165
166
|
|
|
167
|
+
def _snapshot_name(request: BuildRequest) -> str:
|
|
168
|
+
"""The name a build gives its snapshot, unique to the build (its uid is in it)."""
|
|
169
|
+
return f"dl-{request.environment.metadata.name}-v{request.version}-{request.build_uid}"
|
|
170
|
+
|
|
171
|
+
|
|
166
172
|
def _pip_lock_command(*, authored: bool) -> str:
|
|
167
173
|
"""Install the pip lock: `sync` to it, or `install` it over an authored Dockerfile.
|
|
168
174
|
|
|
@@ -245,6 +251,9 @@ class Builder(ManagedBuilder):
|
|
|
245
251
|
self._daytona_sdk = daytona_sdk or _daytona_sdk
|
|
246
252
|
self._registry_sdk = registry_sdk or _daytona_registry_sdk
|
|
247
253
|
self._client_instance: Any = None
|
|
254
|
+
#: The builds `cancel` was asked to stop: one whose snapshot is only
|
|
255
|
+
#: finished after the cancel deletes it itself (E2-18).
|
|
256
|
+
self._cancelled: set[str] = set()
|
|
248
257
|
|
|
249
258
|
def _provider_secrets(self) -> dict[str, str]:
|
|
250
259
|
"""The owner's Daytona secrets the build credential carries (D-8, E2-01).
|
|
@@ -339,7 +348,7 @@ class Builder(ManagedBuilder):
|
|
|
339
348
|
spec = request.environment.spec
|
|
340
349
|
sdk = self._daytona_sdk()
|
|
341
350
|
client = self._client(sdk)
|
|
342
|
-
name =
|
|
351
|
+
name = _snapshot_name(request)
|
|
343
352
|
|
|
344
353
|
registry_id = self._register_base_pull(client, request.resolved_base)
|
|
345
354
|
try:
|
|
@@ -459,6 +468,10 @@ class Builder(ManagedBuilder):
|
|
|
459
468
|
timeout=self.max_build_seconds,
|
|
460
469
|
)
|
|
461
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)
|
|
462
475
|
raise EnvironmentsError(
|
|
463
476
|
BUILD_FAILED,
|
|
464
477
|
f"The Daytona build failed: {error}",
|
|
@@ -469,6 +482,17 @@ class Builder(ManagedBuilder):
|
|
|
469
482
|
# not control, whether the build above succeeded or not (D-18).
|
|
470
483
|
self._unregister_base_pull(client, registry_id)
|
|
471
484
|
|
|
485
|
+
if request.build_uid in self._cancelled:
|
|
486
|
+
# Finished after the build was cancelled: nothing will record it,
|
|
487
|
+
# so it goes now rather than wait in the account for nobody.
|
|
488
|
+
self._log(f"The build was cancelled: deleting the snapshot {snapshot.id} it made")
|
|
489
|
+
with contextlib.suppress(EnvironmentsError):
|
|
490
|
+
self._delete_by_id(sdk, client, snapshot.id)
|
|
491
|
+
raise EnvironmentsError(
|
|
492
|
+
BUILD_FAILED,
|
|
493
|
+
"The build was cancelled, and the snapshot it made was deleted",
|
|
494
|
+
detail={"variant": self.variant, "name": name},
|
|
495
|
+
)
|
|
472
496
|
return ArtifactReference(
|
|
473
497
|
variant=self.variant,
|
|
474
498
|
immutable_reference=snapshot.id,
|
|
@@ -635,8 +659,11 @@ class Builder(ManagedBuilder):
|
|
|
635
659
|
a later build's snapshot that inherited it.
|
|
636
660
|
"""
|
|
637
661
|
sdk = self._daytona_sdk()
|
|
638
|
-
|
|
639
|
-
|
|
662
|
+
self._delete_by_id(
|
|
663
|
+
sdk, self._client(sdk), artifact.provider_artifact_id or artifact.immutable_reference
|
|
664
|
+
)
|
|
665
|
+
|
|
666
|
+
def _delete_by_id(self, sdk: Any, client: Any, snapshot: str) -> None:
|
|
640
667
|
try:
|
|
641
668
|
client.snapshot.delete(snapshot)
|
|
642
669
|
except sdk.DaytonaNotFoundError:
|
|
@@ -646,6 +673,38 @@ class Builder(ManagedBuilder):
|
|
|
646
673
|
raise self._provider_error("delete the snapshot", error) from error
|
|
647
674
|
self._log(f"Deleted the Daytona snapshot {snapshot}")
|
|
648
675
|
|
|
676
|
+
def cancel(self, request: BuildRequest) -> None:
|
|
677
|
+
"""Stop a build: delete the snapshot it is making, now or once it is made (E2-18).
|
|
678
|
+
|
|
679
|
+
The build step calls this when the build is cancelled, and then lets
|
|
680
|
+
the build's own thread finish unheard, so a snapshot Daytona goes on
|
|
681
|
+
building is recorded by nobody. It is found by the name this build
|
|
682
|
+
gave it, which is unique to the build (the build uid is in it), and
|
|
683
|
+
deleted by its id. One not made yet is deleted by `build` itself, the
|
|
684
|
+
moment Daytona hands it back.
|
|
685
|
+
"""
|
|
686
|
+
self._cancelled.add(request.build_uid)
|
|
687
|
+
sdk = self._daytona_sdk()
|
|
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
|
+
"""
|
|
698
|
+
try:
|
|
699
|
+
snapshot = client.snapshot.get(name)
|
|
700
|
+
except Exception:
|
|
701
|
+
return
|
|
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}")
|
|
707
|
+
|
|
649
708
|
def smoke_test(
|
|
650
709
|
self,
|
|
651
710
|
artifact: ArtifactReference,
|
|
@@ -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.
|
|
147
|
-
#
|
|
148
|
-
# environments/base/python-cuda as `2026.09-
|
|
149
|
-
#
|
|
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:
|
|
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:
|
|
35
|
+
"sha256:dc8f0015b4f7dbca92a88d2d6a4a96714b76f9a1af9dddd86835812493e40f08"
|
|
36
36
|
)
|
|
37
37
|
assert (base.accelerator, base.cuda) == (True, "12.8")
|
|
38
38
|
|
|
@@ -912,6 +912,69 @@ class TestReadingTheRegistry:
|
|
|
912
912
|
assert len(daytona.daytona_calls) == 1
|
|
913
913
|
|
|
914
914
|
|
|
915
|
+
class TestCancellingABuild:
|
|
916
|
+
"""E2-18: the build step lets a cancelled build's thread finish unheard, so
|
|
917
|
+
a snapshot Daytona goes on building would be recorded by nobody. Found by
|
|
918
|
+
E2-14's drill on 2026-09-18: `dl-backfill-drill-v2-…` kept building after
|
|
919
|
+
its build was cancelled."""
|
|
920
|
+
|
|
921
|
+
NAME = "dl-geospatial-analysis-v3-bld-1"
|
|
922
|
+
|
|
923
|
+
def test_a_snapshot_being_made_is_deleted_by_id(self) -> None:
|
|
924
|
+
service = FakeSnapshotService(
|
|
925
|
+
get_results={
|
|
926
|
+
self.NAME: FakeSnapshot(id="snp-9", name=self.NAME),
|
|
927
|
+
"snp-9": FakeSnapshot(id="snp-9", name=self.NAME),
|
|
928
|
+
}
|
|
929
|
+
)
|
|
930
|
+
builder = a_builder(
|
|
931
|
+
daytona=FakeDaytonaModule(client=FakeDaytonaClient(snapshot_service=service))
|
|
932
|
+
)
|
|
933
|
+
builder.cancel(a_request())
|
|
934
|
+
assert [call.args for call in service.get_calls] == [(self.NAME,)]
|
|
935
|
+
assert [call.args for call in service.delete_calls] == [("snp-9",)]
|
|
936
|
+
|
|
937
|
+
def test_one_made_after_the_cancel_is_deleted_by_the_build(self) -> None:
|
|
938
|
+
"""Not made yet when the cancel came: the build deletes it the moment
|
|
939
|
+
Daytona hands it back, and does not answer with it."""
|
|
940
|
+
made = FakeSnapshot(id="snp-late", name=self.NAME)
|
|
941
|
+
service = FakeSnapshotService(create_result=made, get_results={"snp-late": made})
|
|
942
|
+
builder = a_builder(
|
|
943
|
+
daytona=FakeDaytonaModule(client=FakeDaytonaClient(snapshot_service=service))
|
|
944
|
+
)
|
|
945
|
+
builder.cancel(a_request())
|
|
946
|
+
assert service.delete_calls == []
|
|
947
|
+
with pytest.raises(EnvironmentsError) as raised:
|
|
948
|
+
builder.build(a_request())
|
|
949
|
+
assert raised.value.code.code == BUILD_FAILED.code
|
|
950
|
+
assert "cancelled" in raised.value.message
|
|
951
|
+
assert [call.args for call in service.delete_calls] == [("snp-late",)]
|
|
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
|
+
|
|
972
|
+
def test_another_build_of_the_same_builder_is_not_touched(self) -> None:
|
|
973
|
+
builder = a_builder()
|
|
974
|
+
builder.cancel(a_request(build_uid="bld-other"))
|
|
975
|
+
assert builder.build(a_request()).provider_artifact_id
|
|
976
|
+
|
|
977
|
+
|
|
915
978
|
class TestDeletingASnapshot:
|
|
916
979
|
"""E2-18: retention and a failed build both need a snapshot to go."""
|
|
917
980
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/__init__.py
RENAMED
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/datalayer.py
RENAMED
|
File without changes
|
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/managed.py
RENAMED
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/adapters/modal.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/build_secrets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/doctor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_sandboxes-1.9.32 → code_sandboxes-1.9.34}/code_sandboxes/environments/resolve_conda.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|