NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #445 most downloaded on PyPI
Python supercharged for fastai development
Last release today
28 Sep 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
366 releases · first in 2019
One column per quarter.
Redesign Self as immutable chain with ~ prefix, add then async pipe, fix bind kwargs placeholders
Add run_sync, iter_sync, ctx_sync helpers to call async code from sync code
run_sync, iter_sync, ctx_sync helpers to call async code from sync code (#841)Fix call_parse to reliably detect direct script execution (#835), thanks to @ncoop57
call_parse to reliably detect direct script execution (#835), thanks to @ncoop57call_parse CLI detection, add is_cli, support comma-separated but in delegates, and fix DocmentText for non-callables (#839)extract tag conversion logic to unify __getattr__ with fasthtml (#838), thanks to @jackhogan
__getattr__ with fasthtml (#838), thanks to @jackhogannbio notebook line splitting/rejoining for outputs and attachments now matches nbformat
Use cell id for NbCell equality; only create locks in parallel executors when pause is set
Improve is_close to handle strings and non-numeric types gracefully
is_close to handle strings and non-numeric types gracefully (#834)Add docstring inheritance to delegates when decorated function lacks its own
delegates when decorated function lacks its own (#833)uid and gid in untar_dir params (#832), thanks to @curtis-allan
untar_dir params (#832), thanks to @curtis-allanFix _get_extended_color to raise ValueError on empty input
_get_extended_color to raise ValueError on empty input (#830)Use tmp for atomic_save temp file suffix (#828), thanks to @curtis-allan
tmp for atomic_save temp file suffix (#828), thanks to @curtis-allanFix patch_to to handle Enum and non-type iterables correctly (#826), thanks to @ncoop57
dict2obj converts None values to {} (#824), thanks to @KeremTurgutlu
dict2obj converts None values to {} (#824), thanks to @KeremTurgutluConvert camelCase tag names to kebab-case in xml.__getattr__
Nothing published for this version
Change parallel_async default return exceptions
Nothing published for this version
Lazy import progress_bar (#812), thanks to @KeremTurgutlu
progress_bar (#812), thanks to @KeremTurgutluAdd daemon parameter to startthread and startproc
Add daemon option to @threaded decorator
Add render_text and mk_result/mk_display/mk_error helpers; use render_text in cell2xml
Support async functions in call_parse
call_parse (#808)Add maxdepth to walk/globtastic, walk_join helper, set support in is_listy
walk_join helper, set support in is_listy (#807)Save original method in patch_to for all attr types, not just plain methods
Minor perf improvements for to_xml
to_xml (#804)Add to_aiter as public async generator and simplify maybe_aiter to use it
Add to_aiter as public async generator and simplify maybe_aiter to use it
### New Features - Add Notebook API
Notebook API (#801)### New Features - Add fastcore.nbio
### New Features - Add can_render helper
can_render helper (#797)Handle TypeError in docments, and fix callable name resolution
Support callable instances in docstring/get_name/DocmentText for proper schema and doc display
get_name/DocmentText for proper schema and doc display (#791)frontmatter: return (dict, body) tuple instead of dict only
### Bugs Squashed - remove once patch param
once patch param (#789)Add frontmatter function to parse YAML front matter from strings
frontmatter function to parse YAML front matter from strings (#788)Add expect_fail context manager, clean_cli_output(), and patch/patch_to once param
expect_fail context manager, clean_cli_output(), and patch/patch_to once param (#787)Add Path.mkdir_perms for dir creation with uid/gid support; use in atomic_save
mkdir_perms for dir creation with uid/gid support; use in atomic_save (#786)Add atomic_save context manager for safe atomic file writes
atomic_save context manager for safe atomic file writes (#785)Add pause parameter to parallel_async for staggered task starts
parallel_async for staggered task starts (#784)parallel_async: add cancel_on_error via TaskGroup, use return_exceptions in gather
parallel_async: add cancel_on_error via TaskGroup, use return_exceptions in gather (#783)Add dict2xml helper and support multiple elements in to_xml
to_xml (#781)### New Features - Add bg_task
bg_task (#780)### New Features - Add bg_task
bg_task (#780)Strip Authorization header on cross-origin redirects (#779), thanks to @erikgaas
Separate MarkdownRenderer __repr__ from _repr_markdown_ for clean plain-text output
__repr__ from _repr_markdown_ for clean plain-text output (#778)Preserve async def prefix and respect explicit __signature__ in ShowDocRenderer
__signature__ in ShowDocRenderer (#777)Add maybe_await and noopa async helpers to xtras
maybe_await and noopa async helpers to xtras (#776)Extract adict base class from AttrDict for lightweight attr-access dicts
Add DepProp descriptor for property-change-triggered dependency invalidation
DepProp descriptor for property-change-triggered dependency invalidation (#774)Add joins helper for joining non-string iterables with a separator
joins helper for joining non-string iterables with a separator (#773)Add is_async_callable from Starlette for detecting async callables
Support backslash by using posix=False
Nothing published for this version
### New Features - Add find_file_parents (#762) ### Bugs Squashed - tests fail sometimes on mac
update to from importlib.metadata import entry_points
from importlib.metadata import entry_points (#760)### New Features - Handle nested call_parse
call_parse (#759)Return None from detect_mime for non-bytes input (#758), thanks to @RensDimmendaal
detect_mime for non-bytes input (#758), thanks to @RensDimmendaaldocments md shows function names instead of repr
Add @llmtool decorator and valid_paths restriction for LLM tool functions
valid_paths restriction for LLM tool functions (#754)Backslash in format str not allowed in py<312
Your coding agent can read these notes before it upgrades. Set up the MCP server →