# # █████ # ░░███ # ██████ ███████ ██████ # ███░░███░░░███░ ░░░░░███ # ░███ ░███ ░███ ███████ # ░███ ░███ ░███ ███ ███░░███ # ░░██████ ░░█████ ░░████████ # ░░░░░░ ░░░░░ ░░░░░░░░ # # Copyright (C) 2026 — 2026, Ota. All Rights Reserved. # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # Licensed under the Apache License, Version 2.0. See LICENSE for the full license text. # You may not use this file except in compliance with that License. # Unless required by applicable law or agreed to in writing, software distributed under the # License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, # either express or implied. See the License for the specific language governing permissions # and limitations under the License. # # If you need additional information or have any questions, please email: os@ota.run version: 1 project: name: basic-python description: Minimal Python repo that shows Python toolchain ownership plus setup and verification type: application toolchains: python: version: "3.12" package_managers: uv: ">=0.7.0" tasks: setup: description: Hydrate Python dependencies through the declared uv lane prepare: kind: dependency_hydration medium: package_dependencies source: kind: uv cwd: . requirements: toolchains: - python effects: writes: - .venv network: true network_kind: dependency_hydration test: description: Run the Python test suite command: exe: uv args: - run - pytest depends_on: - setup requirements: toolchains: - python workflows: default: verify verify: description: Canonical Python toolchain setup and verification path setup: task: setup run: task: test notes: | Use this when the repo front door is setup plus verification rather than a long-running dev server. `toolchains.python` keeps Python ownership under one toolchain contract instead of splitting it across `runtimes.python` and ad hoc package-manager commands. agent: entrypoint: setup default_task: test safe_tasks: - setup - test verify_after_changes: - test writable_paths: - .venv - docs - tests protected_paths: - ota.yaml notes: | Use `ota validate` before changes and `ota workflows` to inspect the setup-plus-test path. Keep Python ownership under `toolchains.python` and use `ota run test` to verify Python changes.