Skip to main content

Parallel and sequential task-tree runner with matrix expansion and effects plugins.

Project description

camas-sketch-by-jph

Camas

A task runner with parallel execution, matrix expansion, and pluggable output effects.

  • For developers: live tree view that updates in place as tasks stream
  • For CI/CD: one definition drives both local runs and CI
  • For LLMs: coming soon — structured JSON stream + MCP

 

demo

Example

from camas import Parallel, Sequential

ci = Sequential(
  Parallel(
    "ruff format . --check",
    "npx prettier ."
  ),
  Parallel(
    "ruff check .",
    "mypy .",
    "npx eslint src/",
    "pytest",
    "npx tsc --noEmit"
  ),
)

The animated tree above is from a live test fixture — see the walkthrough.

Install

[!TIP] Add extras with PEP 621, e.g. camas[github_checks]

pipx:

pipx install camas

uv:

uv tool install camas

Nix:

nix run github:JPHutchins/camas                     # default
nix run github:JPHutchins/camas#with-github-checks  # adds httpx for the GitHubChecks effect
nix run github:JPHutchins/camas#with-check          # adds ty for `camas --check`
nix run github:JPHutchins/camas#all                 # both extras

Why camas?

camas is not a build system. camas is for the specific job of running structured trees of shell commands.

Python task runners† just Task Mage camas
Project scope Python projects only Any Any Go projects only Any
Definition language pyproject.toml TOML or @task decorator justfile DSL YAML Go Python (typed AST)
Inline anonymous parallel groups No No No (must be a named task) No Yes
Parallel execution poe yes; Invoke / taskipy no [parallel] attr deps: (parallel) mg.Deps(...) Parallel(...)
Matrix expansion No No for: + parallel:true Go loops matrix=
CLI matrix override (e.g. --PY 3.13) No No No No Yes
Live tree output No No prefixed / group modes No Termtree (default)
Pluggable output renderers No No 3 built-ins No --effects
Type checking on task definitions Partial No Editor schema Yes (Go) mypy / pyright
First release / status 2013–2020, stable 2016, stable 2017, stable 2017, stable 2026, alpha
Ecosystem Moderate (Python) Large Large Moderate None yet

poethepoet, Invoke, taskipy — pyproject.toml-bound runners that assume a Python project.

If you need... Reach for
Reproducible, hermetic builds Nix
Incremental file-based builds (skip when inputs unchanged) Task
Simple project command menu just
Parameterized tasks (--env=staging, prompts, vars) Task
Go project, build logic in Go Mage
Inline parallel/sequential trees with a live view camas
Pluggable output effects (live tree locally, summary in CI) camas
Matrix runs across versions/platforms, overridable from the CLI camas

CI integration

The renderer is swappable, not the tree. Run the same tasks.py locally with the live Termtree and in CI with Status — one flag changes the output, the pipeline definition is unchanged.

On GitHub Actions, no flag is needed. Camas detects GITHUB_ACTIONS=true and defaults --effects to (Status(StatusOptions(output_mode="github")),) — collapsed workflow groups, ISO timestamps with millisecond precision, ANSI colors preserved.

- run: uv run camas check

On other CI providers (or to opt into a specific mode), spell it out:

- run: uv run camas check --effects='(Status(StatusOptions(output_mode="errors")),)'

See the OutputMode literal and block_for doctests for the per-mode behavior. The status-modes-demo job renders one CI run per mode for visual comparison.

For per-leaf visibility in the PR Checks panel, add the GitHubChecks effect alongside Status (opt-in extra: camas[github_checks]). Each leaf task becomes its own check run, so reviewers see lint / mypy / pytest pass-or-fail individually instead of one monolithic log.

- run: |
    uv run --extra github_checks camas matrix --effects='(
      Status(StatusOptions(output_mode="github")),
      GitHubChecks(GitHubChecksOptions(
        sha="${{ github.event.pull_request.head.sha || github.sha }}",
      )),
    )'
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

The job needs permissions: checks: write. Defaults read GITHUB_TOKEN, GITHUB_REPOSITORY, and GITHUB_SHA from the Actions env. The pull_request.head.sha override attaches checks to the PR head rather than the synthetic merge commit. See the github-checks-demo job for a working example.

When to use it. Two things it gives you:

  • SSOT between local dev and CI. Your camas matrix terminal view and the PR Checks panel show the same per-leaf shape (lint [PY=3.10], mypy [PY=3.14], …). The matrix definition lives once in tasks.py; CI doesn't re-encode it in YAML.
  • One runner instead of N. Camas-side parallel matrix on a single runner produces the same per-(cell, leaf) granularity that a GHA matrix gets across N runners — at 1/N the minutes and camas gives you efficient task parallelization pushing that runner to 100% utilization as much as possible. Worth it on paid-runner budgets.

The downside is that fork PRs get a read-only GITHUB_TOKEN from GitHub and can't write checks — usually a non-issue for Enterprise teams where contributors have push to the org repo.

When not to bother. OSS gets free runners — just GHA-matrix them in parallel for faster wall-clock time. The cost is small: you give up either SSOT (matrix definition moves into YAML) or per-leaf-UI granularity (one PR check entry per runner instead of per leaf) — pick one. What is a deal-breaker for OSS is fork PRs: external-contributor PRs return 403 from the Checks API, so per-leaf entries silently don't appear. The github-checks-demo job is marked continue-on-error so it doesn't block CI when that happens, but GitHubChecks isn't a workable OSS solution.

Effects plugins

Define an Effect in your tasks.py and it's discovered automatically — usable by name from --effects and listed under camas --effects. See examples/effect-plugin/ for a typed Tail effect that streams per-task output as it arrives.

Reference

  • examples/ — full project layouts under test coverage. The canonical reference for how to structure tasks.py, use [tool.camas.tasks] in pyproject.toml, drive a matrix from .python-version, or scope a 2-axis matrix from the CLI.
  • src/camas/ — typed Python with thorough docstrings. camas --help and camas <task> --help link back here.
  • camas with no args lists tasks; camas <task> --help shows the expanded tree, matrix axes, and override flags.

Walkthrough

The animated tree at the top is generated from this tasks.py:

examples/tauri-app/tasks.py — Rust + TypeScript + Python in one tree
from pathlib import Path

from camas import Parallel, Sequential, Task

src_tauri = Path("src-tauri")
python_sdk = Path("python-sdk")
node = Path("node_modules/.bin")

frontend = Sequential(
    f"{node}/prettier --write .",
    Parallel(
        f"{node}/eslint src/",
        f"{node}/tsc --noEmit",
        f"{node}/vitest run",
    ),
)

backend = Sequential(
    Task("cargo fmt --all", cwd=src_tauri),
    Parallel(
        Task("cargo clippy --all-targets --locked -- -D warnings", cwd=src_tauri),
        Task("cargo test --all-targets --locked", cwd=src_tauri),
    ),
)

sdk = Sequential(
    Task("uv run ruff check --fix .", cwd=python_sdk),
    Task("uv run ruff format .", cwd=python_sdk),
    Parallel(
        Task("uv run mypy .", cwd=python_sdk),
        Task("uv run pytest", cwd=python_sdk),
    ),
)

all = Parallel(frontend, backend, sdk)

fix = Parallel(
    f"{node}/prettier --write .",
    Task("cargo fmt --all", cwd=src_tauri),
    Sequential(
        Task("uv run ruff check --fix .", cwd=python_sdk),
        Task("uv run ruff format .", cwd=python_sdk),
    ),
)

build = Parallel(
    Task("npm run tauri build {FLAG}"),
    matrix={"FLAG": ("-- --debug", "")},
    help="Debug and release builds (FLAG='-- --debug' debug, FLAG='' release)",
)
$ cd examples/tauri-app

List the tasks

$ camas --list
output
Available tasks from .../tauri-app/tasks.py:
  all       frontend | backend | sdk
  backend   cargo fmt --all, cargo clippy --all-targets --locked -- -D warnings | cargo test --all-targets --locked
  build     Debug and release builds (FLAG='-- --debug' debug, FLAG='' release)  [matrix: FLAG×2 (-- --debug..)]
  fix       node_modules/.bin/prettier --write . | cargo fmt --all | (uv run ruff check --fix ., uv run ruff format .)
  frontend  node_modules/.bin/prettier --write ., node_modules/.bin/eslint src/ | node_modules/.bin/tsc --noEmit | node_modules/.bin/vitest run
  sdk       uv run ruff check --fix ., uv run ruff format ., uv run mypy . | uv run pytest

Preview what all would run

$ camas --dry-run all
output
all ∥
┃ frontend →
┃ ├─ node_modules/.bin/prettier --write .
┃ └─ node_modules/.bin/eslint src/ | node_modules/.bin/tsc --noEmit | node_modules/.bin/vitest run
┃   ┃ node_modules/.bin/eslint src/
┃   ┃ node_modules/.bin/tsc --noEmit
┃   ┃ node_modules/.bin/vitest run
┃ backend →
┃ ├─ cargo fmt --all  (cwd: src-tauri)
┃ └─ cargo clippy --all-targets --locked -- -D warnings | cargo test --all-targets --locked
┃   ┃ cargo clippy --all-targets --locked -- -D warnings  (cwd: src-tauri)
┃   ┃ cargo test --all-targets --locked  (cwd: src-tauri)
┃ sdk →
┃ ├─ uv run ruff check --fix .  (cwd: python-sdk)
┃ ├─ uv run ruff format .  (cwd: python-sdk)
┃ └─ uv run mypy . | uv run pytest
┃   ┃ uv run mypy .  (cwd: python-sdk)
┃   ┃ uv run pytest  (cwd: python-sdk)

Tree-symbol key: ends a Parallel header, ends a Sequential. Children hang off (parallel siblings, run concurrently) or ├─ / └─ (sequential steps, short-circuit on first failure).

Discover a task's matrix axes and override flags

$ camas build --help
output
usage: camas build [-h] [--dry-run] [--effects EFFECTS] [--FLAG VAL[,VAL...]]

Debug and release builds (FLAG='-- --debug' debug, FLAG='' release)

runs the 'build' task:
build ∥
┃ npm run tauri build -- --debug [FLAG=-- --debug]: npm run tauri build -- --debug  FLAG=-- --debug
┃ npm run tauri build  [FLAG=]: npm run tauri build   FLAG=

Matrix axes (override with --AXIS VAL[,VAL...]):
  --FLAG  -- --debug,

Pin the matrix from the CLI

$ camas build --dry-run --FLAG '-- --debug'
output
build ∥
┃ npm run tauri build -- --debug [FLAG=-- --debug]: npm run tauri build -- --debug  FLAG=-- --debug

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

camas-0.1.9.tar.gz (63.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

camas-0.1.9-cp314-cp314-win_amd64.whl (369.3 kB view details)

Uploaded CPython 3.14Windows x86-64

camas-0.1.9-cp314-cp314-musllinux_1_2_x86_64.whl (701.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

camas-0.1.9-cp314-cp314-musllinux_1_2_aarch64.whl (690.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

camas-0.1.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (704.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

camas-0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (680.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

camas-0.1.9-cp314-cp314-macosx_11_0_arm64.whl (452.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

camas-0.1.9-cp313-cp313-win_amd64.whl (363.3 kB view details)

Uploaded CPython 3.13Windows x86-64

camas-0.1.9-cp313-cp313-musllinux_1_2_x86_64.whl (696.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

camas-0.1.9-cp313-cp313-musllinux_1_2_aarch64.whl (683.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

camas-0.1.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (699.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

camas-0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (675.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

camas-0.1.9-cp313-cp313-macosx_11_0_arm64.whl (451.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

camas-0.1.9-cp312-cp312-win_amd64.whl (363.3 kB view details)

Uploaded CPython 3.12Windows x86-64

camas-0.1.9-cp312-cp312-musllinux_1_2_x86_64.whl (701.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

camas-0.1.9-cp312-cp312-musllinux_1_2_aarch64.whl (689.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

camas-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (704.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

camas-0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (680.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

camas-0.1.9-cp312-cp312-macosx_11_0_arm64.whl (452.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

camas-0.1.9-cp311-cp311-win_amd64.whl (361.3 kB view details)

Uploaded CPython 3.11Windows x86-64

camas-0.1.9-cp311-cp311-musllinux_1_2_x86_64.whl (663.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

camas-0.1.9-cp311-cp311-musllinux_1_2_aarch64.whl (657.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

camas-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (669.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

camas-0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (647.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

camas-0.1.9-cp311-cp311-macosx_11_0_arm64.whl (450.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file camas-0.1.9.tar.gz.

File metadata

  • Download URL: camas-0.1.9.tar.gz
  • Upload date:
  • Size: 63.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for camas-0.1.9.tar.gz
Algorithm Hash digest
SHA256 642e01e03e9b45faa83dc645dc3e7dbac09c2a6df97ab6579ccf8ac16982dfc2
MD5 7adaa7e6c1988718019d17dc295807bb
BLAKE2b-256 8dd8ada5b966ce7f603308890e5be43e3b0bc643c671add301f9241ac260c18a

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9.tar.gz:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: camas-0.1.9-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 369.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for camas-0.1.9-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 10a240db2a2caee9f681c4a6b1db2decdee8aeab518b38008de815b9cc13f125
MD5 4b80b72ed1ad98aa2ff7f9747ca526bf
BLAKE2b-256 9b3258f58e54c330361cea64eafaecd6325d704196db4b3271135b28eea8a322

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp314-cp314-win_amd64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 25aa81d0917d868929b8c0b8c92cbbb6275f52aab6173f3d10f490827fefeb76
MD5 16216231b52d6c59b5cc8fa6fa6a4b6f
BLAKE2b-256 2be58543232fa1af75fc4efb76a93fd5f5a3ed9e857b21bfbae7f9d3e88dba18

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b4c419ece405e6cf0632e21fbaaaba521ed3f3cc8df0c268dd53f32f5dc59e8a
MD5 0b1e0b498b28e06428e5028a87eea5c2
BLAKE2b-256 ce0140a861082bc96bbd9ae5770b67f8ed6d28fde174bf9e9a4f6cf9bf5308e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5b3e9cdd63b99ffe172961f315a3afaca188618de333e4e5babcef93af10a04e
MD5 70ba87803ac867f1d12d28fe18ad06c5
BLAKE2b-256 801ab7ae93ca51a1b7e635280f6248b578084c0807006ac033d47d9ce837c7d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f79e56597e4a142a54214fc5e6dfea9ea8e0724c10fa8557f6d8eb5682c82b26
MD5 28c236f82dc052ebd43c7f0d8e55d436
BLAKE2b-256 d9b0e62d3e4312da86b6f81c936ab27b8c702c70afd3b32a9b69234b1e22a174

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a307f18953e93bc1a4d4c5b054c2119ae8fe1ffb10052d81264773478206f4e4
MD5 8c71c6187279f53b0a21d18ab6f60011
BLAKE2b-256 10d67e56c7ba00fc56a28b8d3c36c076959b5877b16e9530e048eddc4d7854dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: camas-0.1.9-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 363.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for camas-0.1.9-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f9d9c3fc16d0f20bb564abfebc83082623e679eb48b4bdec49a9eb71a1e1963f
MD5 c2e94824ae5550c13025779cc3ac143b
BLAKE2b-256 79dbf22d5b77e71091a4d2ebfc8f88756273fd4f1d5da3e90d1acf12f3f6808d

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp313-cp313-win_amd64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 96e163b5a4c9bc0d169b81200626d9e2c7c8e0fe97fca494134f7f4ce88cc575
MD5 f080c4cde307465f57df51f1c1d1477e
BLAKE2b-256 12a58bad6a7c071bd5b62476af00d333b08bf49f7608a28b27ce1434f4c6005b

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 48bd7df87b343eb09067c021e52caac73d59985295da2e280e4bb8352da582b9
MD5 bfb0c0cf07be9e3cd6c4d1cc39402478
BLAKE2b-256 349343a100dbbed2296589c378328dcb18a369a685aaac23220a785f90986265

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp313-cp313-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b92c31d7415a3d48a645af25fe12ba6fff52553d609984e85af00c035f946581
MD5 1b2a79856f213b296dabdb142afadd9b
BLAKE2b-256 d3cf10266fc4518ccd214d24d210a6a3e7e31658c65eb98ffe80add075c6608d

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7d5522b8a463abeb0b9cf96e5c59e47d8da1443bc5a3d556889ee87ee637f988
MD5 52eca91164edc0d9851f547469b63d8c
BLAKE2b-256 eec8a8a669717d61889a9b7e7b8eebcd9a572f60c0d63c1257ce7937113133b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01be6dd56fe87d691496834485d63f8087a1c0ef1c7c75c33f518471ee2315e1
MD5 7618d207c51bb5655affeab9a9865fc4
BLAKE2b-256 d86164d49735159ef03c3307b1b6a3e89b0674106afc79f71b6395d5c609611f

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: camas-0.1.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 363.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for camas-0.1.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 162e91c7939b354557476717121207b7ec48d501ba36ae4d1cf465974e10afec
MD5 6c19af435cf6a80c0bbacccd816f7b01
BLAKE2b-256 97b6b1d8ec27fd0fa25c4457d9f5577547b104fc4a6c7d0f26f5723264408d53

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp312-cp312-win_amd64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 add0cfb02fbf69b2f8dd64ae7ea58a659b9fbaba3863bf29f1ff7febc78030f6
MD5 2e73ad68a4dd40dfb083e6ae98fa8931
BLAKE2b-256 434b9b5f6172df7376a1ed03b74dbb87a981b2391ef91cdf039c155b850fc84b

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9fc7b497ad2685c51914b239e26d44a057e93cbae5dcbb42258cbbacb3f2cc72
MD5 05ce15e6ec6f0b1cc437ab7f3917a6c3
BLAKE2b-256 a4a7e53cef09f3098752e255fcaf558bd2d6edc732755b14faeb31c032bc8e6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp312-cp312-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d3d9c474a886500bd0381d9172dd6db1971b65cf85ec5c6e6118ec907422b4f0
MD5 4e176cc4856039459df1be6ca9992f0a
BLAKE2b-256 87e1cc7de3c0564f38fc2ee4b7e1fb78c825e751a9d12fc7123530e2bca91744

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 10a8f8f7b54130b632a58cdb94772a2028105752a355128cf357c6ea8f99d2a4
MD5 f2acd18c835f56c1dad27dcdc28572e4
BLAKE2b-256 8604e36a4994a9e7f6607260d2d292829dc8fb9585700ee146be25c2df626708

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a3abd64485ef912b6eea231bc3c6c3cf4a8084df37aaf7f4dbb279e31bea745
MD5 844346dd3cbe5f35a27d17f37502da79
BLAKE2b-256 411f714668b095781574ac74cfaa65955618f9b01fa1bcc2762f3b998cb6c408

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: camas-0.1.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 361.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for camas-0.1.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 291e990d59cd8d6803f46bb75d24b950c3cb9df1ce586af832c440731f11000b
MD5 0e91c4de5c3aeab5fa1e5c9bce8f6358
BLAKE2b-256 02861d6227f89781254af89af389c0ff256fa6f15c33da5e4ae24c7a0f38ec6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp311-cp311-win_amd64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 297d93f5ce9fda1642f4065a3c1cda71a764a1227e5acd421fd296c3959f944a
MD5 5795f5e245904249b738c82be06467be
BLAKE2b-256 28697ab39d5c327224abb468913987d9733bb55a5cfa261106b1035b59c3e55b

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 011c7ca2bef48ba69710089d08162781df2b6e25d5cefcea126078047d19db43
MD5 ec65659d86d5b1dffed9a3e6b599608a
BLAKE2b-256 700f6b1c1d9d186320ab1a6fbbe8b4b1ae16689e85eaefe800bc9242b0b38a43

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9063df87b8410322399f9cf6bbcbc41c35f304b96faf4dc3dd62e9b441c5a0d
MD5 7706b5a60cdcc66a0f1f5a2410f96a10
BLAKE2b-256 6a652ae0fcaf6d96b02f3e1b37b1564f416372238f514eeca936acf20d5ba20a

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 891deb2a86d318361f65edcdcfa678b765b5021f847b2ed5674322bc08a8c0f8
MD5 4ead20a1dcdd8643434b7c5e7d85bfa4
BLAKE2b-256 75e23654d9428833fe2994f1106943a7b5d9eb1bf98053e92b4c5bad16ae3cfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camas-0.1.9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for camas-0.1.9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bd494ce35ef5e6b4d824aee6230733e83f6d86934241ecc51c5b62be25b9a1e
MD5 8377b759d2156085bb3ce80972367eb0
BLAKE2b-256 e8677428453c8ec2765e96440fd62266f190b7bbc72d0948096b008cc866ca7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for camas-0.1.9-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: ci.yaml on JPHutchins/camas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page