Highlights
April 13, 2026 ยท View on GitHub
.. image:: https://img.shields.io/pypi/v/jaraco.context.svg :target: https://pypi.org/project/jaraco.context
.. image:: https://img.shields.io/pypi/pyversions/jaraco.context.svg
.. image:: https://github.com/jaraco/jaraco.context/actions/workflows/main.yml/badge.svg :target: https://github.com/jaraco/jaraco.context/actions?query=workflow%3A%22tests%22 :alt: tests
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json :target: https://github.com/astral-sh/ruff :alt: Ruff
.. image:: https://readthedocs.org/projects/jaracocontext/badge/?version=latest :target: https://jaracocontext.readthedocs.io/en/latest/?badge=latest
.. image:: https://img.shields.io/badge/skeleton-2026-informational :target: https://blog.jaraco.com/skeleton
.. image:: https://tidelift.com/badges/package/pypi/jaraco.context :target: https://tidelift.com/subscription/pkg/pypi-jaraco.context?utm_source=pypi-jaraco.context&utm_medium=readme
Highlights
See the docs linked from the badge above for the full details, but here are some features that may be of interest.
ExceptionTrapprovides a general-purpose wrapper for trapping exceptions and then acting on the outcome. Includespassesandraisesdecorators to replace the result of a wrapped function by a boolean indicating the outcome of the exception trap. Seethis keyring commit <https://github.com/jaraco/keyring/commit/a85a7cbc6c909f8121660ed1f7b487f99a1c2bf7>_ for an example of it in production.suppresssimply enablescontextlib.suppressas a decorator.on_interruptis a decorator used by CLI entry points to affect the handling of aKeyboardInterrupt. Inspired byLucretiel/autocommand#18 <https://github.com/Lucretiel/autocommand/issues/18>_.pushdis similar to pytest'smonkeypatch.chdiror path'sdefault context <https://path.readthedocs.io/en/latest/api.html>_, changes the current working directory for the duration of the context.tarballwill download a tarball, extract it, change directory, yield, then clean up after. Convenient when working with web assets.nullis there for those times when one code branch needs a context and the other doesn't; this null context provides symmetry across those branches.
For Enterprise
Available as part of the Tidelift Subscription.
This project and the maintainers of thousands of other packages are working with Tidelift to deliver one enterprise subscription that covers all of the open source you use.
Learn more <https://tidelift.com/subscription/pkg/pypi-jaraco.context?utm_source=pypi-jaraco.context&utm_medium=referral&utm_campaign=github>_.