You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v3.1.0 — Failure Context in Logfiles, PEP 561, Docs Refresh
✨ New Features
Failure context in task logfiles: when a task fails, its logfile now
includes the same structured information shown in the HTML failure email —
function name, args/kwargs, downstream impact, traced-vars location, and
the traceback — not just the bare exception message and stack trace.
🔧 Refactoring
Introduced _ErrorData, a typed view over the internal task_context
payload, and _ErrorContextFormatter, a shared base class for the email
and logfile formatters. Both formatters now read one typed object instead
of independently pulling fields out of an untyped dict.
Extracted plain-text logfile rendering into a new _log_formatting module
(_TaskLogFormatter), keeping _email_internals focused on SMTP/HTML
concerns only.
📦 Packaging
Added PEP 561 support: shipped py.typed marker and the "Typing :: Typed" classifier, so downstream mypy/pyright runs pick up
this package's type hints.
Removed the stale version_files entry from [tool.commitizen] (version
is sourced from git tags via hatch-vcs).
Refined the package description to lead with what the library does and
call out that tasks are plain callables.
📚 Documentation
Configured mkdocstrings for NumPy-style docstrings (docstring_style: numpy) and enabled heading/signature rendering — the API Reference page
now shows class names, method sections, and proper parameter/attribute
lists instead of flat paragraphs.
Updated the "Customizing the HTML email" section and Quick Start example
to use SMTPConfig/HTMLEmailStyle (the old HTMLSMTPHandler references
were stale after the v3.0.0 API change).
Added a "Retries & Timeouts" section to the advanced example, documenting timeout, retries, and retry_on.
🧹 CI
Bumped actions/checkout and astral-sh/setup-uv to their latest
available major tags (v6) across all workflows to silence Node 20
deprecation warnings.