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.7

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.7
File Size Uploaded
coffea_casa-2026.10.13.7.tar.gz 8.8 MB Details

Built distribution (wheel)

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

Total release size: 8.8 MB

Release files / coffea_casa-2026.10.13.7.tar.gz

Download URL coffea_casa-2026.10.13.7.tar.gz
Size 8.8 MB
Tags Source
SHA-256 checksum
How to use checksums
f90b14f2e64d65c071eb04b874502fc8c29e63255a636c3eaf4537faa38a4eff
BLAKE2b-256 checksum
How to use checksums
809ae41559bb8c6c15df0298984cd394a9fd8c724efee328c22a30906f2a02a8
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.7-py3-none-any.whl

Download URL coffea_casa-2026.10.13.7-py3-none-any.whl
Size 17.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
57bdd62cf5fb7741d441230e99de5f49c61582689fc248ccfb341f50eab46894
BLAKE2b-256 checksum
How to use checksums
e52fa9a7fae5d9fe700c0075359c692859ce6f210e20973230b05ae35ac95ed0
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.7 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