Skip to main content

Coffea-casa — An Analysis Facility for the Columnar Object Framework For Effective Analysis

CI/CD Docker images Documentation Status Code style: black PyPI version PyPI platforms GitHub Discussion GitHub issues GitHub pull requests

About Coffea-casa

Coffea-casa is an analysis facility (AF) that provides services for "low latency columnar analysis", enabling rapid processing of HEP data in a column-wise fashion with coffea. Its services, based on Dask and Jupyter, aim to dramatically lower time to insight and provide an easily scalable, user-friendly computational environment.

The facility runs on Kubernetes (JupyterHub via Zero to JupyterHub) and scales Dask workers out onto dedicated resources and onto resources allocated via fair share through HTCondor (e.g. the Nebraska Tier-2). It also handles single sign-on, token-based authentication and authorization for data access (XRootD / XCache), and ships a curated software stack for analysis.

Production instances:

User documentation: https://coffea-casa.readthedocs.io. Examples live in docs/gallery and in coffea-casa-tutorials.

What's in this repository

Path Contents
coffea_casa/ coffea_casa Python package (CoffeaCasaCluster, a dask-jobqueue HTCondor cluster for the AF), published to PyPI
docker/ Dockerfiles and environment files for the notebook/scheduler and worker images (details)
charts/coffea-casa/ Helm chart (JupyterHub + coffea-casa configuration)
docs/ Sphinx documentation (ReadTheDocs) and the example notebook gallery
ci/, tests/, tests-charts/ Image structure tests, spawn/smoke tests, chart tests

The coffea_casa Python package

pip install coffea-casa

Inside a coffea-casa notebook, the Dask JupyterLab extension starts a CoffeaCasaCluster for you. To create one manually:

from coffea_casa import CoffeaCasaCluster
from dask.distributed import Client

cluster = CoffeaCasaCluster()  # no workers are submitted until you scale
cluster.adapt(minimum=0, maximum=20)
client = Client(cluster)

See the API docs for all options.

Docker images

Images are published to the OSG Harbor registry under hub.opensciencegrid.org/coffea-casa. They are built on top of the coffea base images (coffeateam/coffea-*-almalinux9):

Image Role
cc-dask-alma9 Single-user notebook / Dask scheduler image (JupyterLab, Dask labextension, code-server, …)
cc-analysis-alma9 Slim Dask worker image
cc-dask-combine-alma9 cc-dask-alma9 + ROOT and CMS Combine
cc-analysis-combine-alma9 cc-analysis-alma9 + ROOT and CMS Combine

cc-dask-alma9 and cc-analysis-alma9 are built for several coffea flavours:

Flavour Base image Python
noml (default) coffeateam/coffea-almalinux9-noml 3.12
dak coffeateam/coffea-dak-almalinux9 (coffea with dask-awkward) 3.12
full coffeateam/coffea-almalinux9 3.12
0.7 coffeateam/coffea-0.7-almalinux9 (legacy coffea 0.7.x) 3.11

Tags have the form <version>-<flavour> (e.g. cc-dask-alma9:2026.10.12-dak); the default noml flavour is also published under the bare <version> tag. Base image versions are bumped automatically by a daily workflow that opens a PR.

See docker/README.md for build arguments and how to build images locally.

Helm chart

helm repo add coffea-casa https://coffeateam.github.io/coffea-casa
helm repo update
helm search repo coffea-casa

See the chart README, the deployment guide and the local (k3d / minikube) deployment guide.

Versioning and releases

Coffea-casa uses calendar versioning (YYYY.MM.DD, with a .N suffix for further releases on the same day). Releasing is automated with GitHub Actions — there are no version numbers to bump by hand:

  1. Every push to master is automatically tagged with the next CalVer tag.
    • Images whose sources changed are published as :development / :development-<flavour>.
    • The Helm chart is published to https://coffeateam.github.io/coffea-casa if charts/ changed. Since Helm requires SemVer, the chart version maps the tag to YYYY.MMDD.N (e.g. 2026.10.12 → 2026.1012.0); appVersion is the exact git tag.
  2. Publishing a GitHub Release from a tag (releases):
    • builds, tests and publishes all images as :<tag> / :<tag>-<flavour>;
    • publishes the coffea_casa package to PyPI (version derived from the tag);
    • republishes the Helm chart.

Pull requests build and test images and the chart without publishing anything.

Analysis repositories using coffea-casa

  • BTVNanoCommissioning — commissioning studies in the CMS BTV POG based on (custom) NanoAOD samples
  • SUEPCoffea_dask — SUEP analysis using fastjet with awkward input from PFNano NanoAOD samples
  • hgg-coffea — tools for running the CMS Higgs to two photons analysis on NanoAOD

References

  • M. Adamec, G. Attebury, K. Bloom, B. Bockelman, C. Lundstedt, O. Shadura and J. Thiltges, Coffea-casa: an analysis facility prototype, arXiv:2103.01871 (2021).
  • PyHEP 2020 coffea-casa proceedings: DOI
  • PyHEP 2020 introductory talk: YouTube

Contact us

Questions and feedback are welcome in GitHub Discussions, GitHub Issues, or the IRIS-HEP Slack.

Metadata

Release files for coffea-casa 2026.10.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coffea-casa 2026.10.13
File Size Uploaded
coffea_casa-2026.10.13.tar.gz 8.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for coffea-casa 2026.10.13
File Interpreter ABI Platform
coffea_casa-2026.10.13-py3-none-any.whl Python 3 none any Details

Total release size: 8.8 MB

Release files / coffea_casa-2026.10.13.tar.gz

Download URL coffea_casa-2026.10.13.tar.gz
Size 8.8 MB
Tags Source
SHA-256 checksum
How to use checksums
e9dc0fc7bccfdf5d9552533e35b6f2a5320d0af546c79d0b0ab4cba6ca48c08e
BLAKE2b-256 checksum
How to use checksums
891581a8f888cfed28e858e4dd56b97f870f4640057497f66a17fcd40eb8678b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / coffea_casa-2026.10.13-py3-none-any.whl

Download URL coffea_casa-2026.10.13-py3-none-any.whl
Size 17.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b162cd0a9959bee831215330317a693dcdcab7dfced823e2c0edc37ef8be6870
BLAKE2b-256 checksum
How to use checksums
40fa71a17fc456a5e1b55d751e77f2adf252b4c3053089a8797d2b64a62be5b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.10.13 This release

2 release files

0.0.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page