NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #760 most downloaded on PyPI
Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API.
Last release 25 days ago
04 Sep 2026
Release timing varies
gaps range from 8 days to 3 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
154 releases · first in 2021
One column per quarter.
Store reference to function call in keyword expressions (d72f9d3 by Timothée Mazzucotelli). PR #231
De-duplicate search paths in finder as they could lead to the same modules being yielded twice or more when scanning namespace packages (80a158a by Ti
<small>Compare with 0.39.0</small>
Support editable installs dynamically exposing modules from other directories (2c4ba75 by Timothée Mazzucotelli). Issue #229
<small>Compare with 0.38.1</small>
Support absolute Windows paths for extensions (4e67d8f by Timothée Mazzucotelli). Issue mkdocstrings-python#116
<small>Compare with 0.38.0</small>
Allow passing load parameters to the temporary package visit helper (3a7854f by Timothée Mazzucotelli).
<small>Compare with 0.37.0</small>
Old usages (load_module and module=...) will continue to work for some time (a few months, a year, more), and will emit deprecation warnings.
<small>Compare with 0.36.9</small>
load_module method was renamed load,
Its module parameter was renamed objspec and is now positional-only.
This method always returned the specified object, not just modules,
so it made more sense to rename it load and to rename the parameter
specifying the object. Old usages (load_module and module=...)
will continue to work for some time (a few months, a year, more),
and will emit deprecation warnings.on_package_loaded event (a5cf654 by Timothée Mazzucotelli).load_module method to load (2bfe206 by Timothée Mazzucotelli).Fix accessing alias members with __getitem__ (8929409 by Timothée Mazzucotelli). Issue mkdocstrings-python#111
<small>Compare with 0.36.8</small>
__getitem__ (8929409 by Timothée Mazzucotelli). Issue mkdocstrings-python#111Use already parsed docstring sections when dumping full data (311807b by Timothée Mazzucotelli). Discussion griffe-typingdoc#6
<small>Compare with 0.36.7</small>
Add missing proxies (methods/properties) to aliases (7320640 by Timothée Mazzucotelli).
<small>Compare with 0.36.6</small>
Only consider presence/absence for docstrings truthiness, not emptiness of their value (4c49611 by Timothée Mazzucotelli).
<small>Compare with 0.36.5</small>
Force extension import path to be a string (coming from MkDocs' !relative tag) (34e21a9 by Timothée Mazzucotelli).
<small>Compare with 0.36.4</small>
!relative tag) (34e21a9 by Timothée Mazzucotelli).Fix visiting relative imports in non-init modules (c1138c3 by Timothée Mazzucotelli).
<small>Compare with 0.36.3</small>
Fix parsing of choices in Numpy parameters (5f2d997 by Timothée Mazzucotelli). Issue #212
<small>Compare with 0.36.2</small>
repr methods to function parameters (9442234 by Timothée Mazzucotelli).Fix warnings for docstrings in builtin modules (6ba3e04 by Timothée Mazzucotelli).
Fix iterating non-flat expressions (some nodes were skipped) (3249155 by Timothée Mazzucotelli).
<small>Compare with 0.36.0</small>
Add option to read return type of properties in their summary (Google-style) (096970f by Timothée Mazzucotelli). Issue #137, PR #206
<small>Compare with 0.35.2</small>
__init__ method (e8a9fdc by Timothée Mazzucotelli). Issue #205Be more strict when parsing sections in Google docstrings (6a8a228 by Timothée Mazzucotelli). Issue #204
<small>Compare with 0.35.1</small>
Preserve inherited attribute on alias inherited members (1e19e7b by Timothée Mazzucotelli). Issue mkdocstrings/python#102
<small>Compare with 0.35.0</small>
Add an is_public helper method to guess if an object is public (b823639 by Timothée Mazzucotelli).
<small>Compare with 0.34.0</small>
is_public helper method to guess if an object is public (b823639 by Timothée Mazzucotelli).warn_unknown_params option to Google and Numpy parsers (5bf0746 by Timothée Mazzucotelli).Allow checking if docstring section is empty or not with if section (f6cf559 by Timothée Mazzucotelli).
<small>Compare with 0.33.0</small>
if section (f6cf559 by Timothée Mazzucotelli).Add -V, --version CLI flag to show version (a41515f by jgart). Issue #186, PR #187, Co-authored-by: Timothée Mazzucotelli
<small>Compare with 0.32.3</small>
-V, --version CLI flag to show version (a41515f by jgart). Issue #186, PR #187, Co-authored-by: Timothée Mazzucotelli pawamoy@pm.me<small>Compare with 0.32.3</small>
griffe.expressions.Expression in favor of [griffe.Expr][] and subclassesgriffe.expressions.Name in favor of [griffe.ExprName][]-V, --version CLI flag to show version (a41515f by jgart). Issue #186, PR #187, Co-authored-by: Timothée Mazzucotelli pawamoy@pm.meFix detecting whether an object should be an alias during inspection (6a63b37 by Timothée Mazzucotelli). Issue #180
<small>Compare with 0.32.2</small>
Keep parentheses around tuples, except within subscripts (df6e636 by Timothée Mazzucotelli). Issue mkdocstrings/python#88
<small>Compare with 0.32.1</small>
Simplify AST imports, stop using deprecated code from ast (21d5832 by Timothée Mazzucotelli). Issue #179
<small>Compare with 0.32.0</small>
ast (21d5832 by Timothée Mazzucotelli). Issue #179…are deprecated in favor of [Extension][griffe.extensions.base.Extension]. As a side-effect, the [hybrid][griffe.extensions.hybrid.HybridExtension] ext…
<small>Compare with 0.31.0</small>
InspectorExtension][griffe.extensions.base.InspectorExtension]
and [VisitorExtension][griffe.extensions.base.VisitorExtension]
are deprecated in favor of [Extension][griffe.extensions.base.Extension].
As a side-effect, the [hybrid][griffe.extensions.hybrid.HybridExtension] extension
is also deprecated. See how to use and write extensions.griffe.agents.base was removedgriffe.docstrings.markdown was removedASTNode was removedBaseInspector was removedBaseVisitor was removedget_parameter_default was removedload_extension was removed (made private)patch_ast was removedtmp_worktree was removed (made private)Extension][griffe.extensions.base.Extension] is now a classextra attribute to objects (707a348 by Timothée Mazzucotelli).__all__ (db0e0e3 by Timothée Mazzucotelli).[GriffeLoader.resolve_aliases(only_exported)][griffe.GriffeLoader.resolve_aliases]: Deprecated parameter was removed and replaced by implicit (inverse…
<small>Compare with 0.30.1</small>
GriffeLoader.resolve_aliases(only_exported)][griffe.GriffeLoader.resolve_aliases]: Deprecated parameter was removed and replaced by implicit (inverse semantics)GriffeLoader.resolve_aliases(only_known_modules)][griffe.GriffeLoader.resolve_aliases]: Deprecated parameter was removed and replaced by external (inverse semantics)LinesCollection.tokens][griffe.LinesCollection]: Public object was removed (Python 3.7)ASTNode.end_lineno: Public object was removed (Python 3.7)griffe.agents.extensions: Deprecated module was removed and replaced by griffe.extensions--color, --no-color options to check subcommand (eac783c by Timothée Mazzucotelli).griffe.agents.extensions module (b555c78 by Timothée Mazzucotelli).resolve_aliases method (dd98acd by Timothée Mazzucotelli).Prevent duplicate yields of breaking changes (9edef90 by Timothée Mazzucotelli). Issue #162
<small>Compare with 0.30.0</small>
Add allow_section_blank_line option to the Numpy parser (245845e by Michael Chow). Issue #167, PR #168
<small>Compare with 0.29.1</small>
allow_section_blank_line option to the Numpy parser (245845e by Michael Chow). Issue #167, PR #168Fix detection of optional and default in Numpydoc-style parameters (3509106 by Timothée Mazzucotelli). Issue #165
<small>Compare with 0.29.0</small>
external when expanding wildcards (8ef92c8 by Timothée Mazzucotelli).Provide test helpers and pytest fixtures (611ed58 by Timothée Mazzucotelli).
<small>Compare with 0.28.2</small>
Correctly resolve full expressions (fa57f4f by Timothée Mazzucotelli). Issue mkdocstrings/autorefs#23
<small>Compare with 0.28.1</small>
full attribute instead of canonical for expressions (4338ccc by Michael Chow). Issue #163, PR #164Return docstring warnings as warnings, not attributes (7bd51ba by Matthew Anderson). PR #161
<small>Compare with 0.28.0</small>
Support scikit-build-core editable modules (partially) (eb64779 by Timothée Mazzucotelli). Issue #154
<small>Compare with 0.27.5</small>
Represent function using their names when inspecting default values (9116c1f by Timothée Mazzucotelli). Issue mkdocstrings/mkdocstrings#180
<small>Compare with 0.27.4</small>
Don't recurse through targets, get directly to final target and handle alias-related errors (c5bc197 by Timothée Mazzucotelli). Issue #155
<small>Compare with 0.27.3</small>
.pth files to extend search paths with editable modules (79bf724 by Timothée Mazzucotelli). Issue #154_load_packages helper (f104c20 by Timothée Mazzucotelli).Allow setting docstring through alias (2e0f553 by Timothée Mazzucotelli).
<small>Compare with 0.27.2</small>
Remove async extra (aiofiles) (70d9b93 by Timothée Mazzucotelli).
<small>Compare with 0.27.1</small>
ClassVar annotation (60e01c1 by Victor Westerhuis). PR #150, Co-authored-by: Timothée Mazzucotelli pawamoy@pm.meActually parse warnings sections (bc00da5 by Timothée Mazzucotelli).
<small>Compare with 0.27.0</small>
Implement basic handling of Alias for breaking changes (aa8ce00 by Yurii). PR #140, Co-authored-by: Timothée Mazzucotelli
<small>Compare with 0.26.0</small>
Literal imported from typing_extensions (3a16e58 by Timothée Mazzucotelli). Issue mkdocstrings/mkdocstrings#545The griffe.agents.extensions module was moved to griffe.extensions. The old path is deprecated.
<small>Compare with 0.25.5</small>
AliasResolutionError instances don't have a target_path attribute anymore.
It is instead replaced by an alias attribute which is a reference to an Alias instance.griffe.agents.extensions module was moved to griffe.extensions.
The old path is deprecated.editables (ab7a3be by Timothée Mazzucotelli): the names of editable modules have changed from __editables_* to _editable_impl_*.relative_filepath which now really returns the filepath relative to the current working directory (40fe0c5 by Timothée Mazzucotelli).griffe.agents.extensions module (deprecated) (7129477 by Timothée Mazzucotelli).when value on extension base classes (e8ad889 by Timothée Mazzucotelli).relative_filepath to relative_package_filepath to better express what it does (6148f85 by Timothée Mazzucotelli).Fix parsing empty lines with indentation in Google docstrings (705edff by Timothée Mazzucotelli). Issue #129
<small>Compare with 0.25.4</small>
Fix creation of aliases to modules when inspecting (54242cb by Timothée Mazzucotelli).
<small>Compare with 0.25.3</small>
Fix parsing of annotations in Numpy attributes sections (18fa396 by Timothée Mazzucotelli). Issue #72
<small>Compare with 0.25.2</small>
Make sure passage through aliases is reset (79733f4 by Timothée Mazzucotelli). Issue #123
<small>Compare with 0.25.1</small>
Pass through aliases earlier to prevent infinite recursion (e533f29 by Timothée Mazzucotelli). Issue #83, #122
<small>Compare with 0.25.0</small>
Parameter only_known_modules was renamed external in the [expand_wildcards()][griffe.GriffeLoader.expand_wildcards] method of the loader.
<small>Compare with 0.24.1</small>
only_known_modules was renamed external in the [expand_wildcards()][griffe.GriffeLoader.expand_wildcards] method of the loader.UnhandledEditablesModuleError was renamed UnhandledEditableModuleError since we now support editable installation from other packages than editables.property labels of course.setuptools editable modules (abc18f7 by Timothée Mazzucotelli). Issue mkdocstrings/mkdocstrings#463__getattr__ (11b023b by Timothée Mazzucotelli). Issue #73, PR #119only_known_modules parameter to external (5f816c6 by Timothée Mazzucotelli).Support nested namespace packages (d571f8f by Timothée Mazzucotelli).
<small>Compare with 0.24.0</small>
The "Breaking Changes" and "Deprecations" sections are proudly written with the help of our new API breakage detection feature ! Many thanks to Talley…
<small>Compare with 0.23.0</small>
The "Breaking Changes" and "Deprecations" sections are proudly written with the help of our new API breakage detection feature :smile:! Many thanks to Talley Lambert (@tlambert03) for the initial code allowing to compare two Griffe trees.
load_git][griffe.load_git] function, except module, are now keyword-only.try_relative_path of the [load_git][griffe.load_git] function was removed.commit was renamed ref in the [load_git][griffe.load_git] function.commit was renamed ref in the tmp_worktree helper, which will probably become private later.ref and repo switched positions in the tmp_worktree helper.resolve_aliases][griffe.GriffeLoader.resolve_aliases] method are now keyword-only.only_exported and only_known_modules of the [resolve_module_aliases][griffe.GriffeLoader.resolve_module_aliases]
method were removed. This method is most probably not used by anyone, and will probably be made private in the future.Parameters only_exported and only_known_modules of the [resolve_aliases][griffe.GriffeLoader.resolve_aliases]
method are deprecated in favor of their inverted counter-part implicit and external parameters.
loader.resolve_aliases(only_exported=True, only_known_modules=True)loader.resolve_aliases(implicit=False, external=False)Support typing_extensions.overload (c29fad5 by Nyuan Zhang). PR #108
<small>Compare with 0.22.2</small>
Log debug instead of errors when failing to parse Numpy annotations (75eeeda by Timothée Mazzucotelli). Issue #93
<small>Compare with 0.22.1</small>
__all__ (log a warning instead) (9e5df0a by Timothée Mazzucotelli). Issue #92Always use encoding="utf8" when reading text files (3b279bf by Rudolf Byker). Issue #99, PR #100
<small>Compare with 0.22.0</small>
Support forward references (245daea by Timothée Mazzucotelli). Issue #86
<small>Compare with 0.21.0</small>
Add load_git function allowing to load data from a specific git ref (b2c3946 by Talley Lambert). Issue #75, PR #76
<small>Compare with 0.20.0</small>
load_git function allowing to load data from a specific git ref (b2c3946 by Talley Lambert). Issue #75, PR #76Add as_json and from_json convenience methods on objects (5c3d751 by Talley Lambert). PR #74
Support USub and UAdd nodes in annotations (1169c51 by Timothée Mazzucotelli). Issue #71
<small>Compare with 0.19.2</small>
Don't crash on single line docstrings with trailing whitespace (Google) (8d9ccd5 by Timothée Mazzucotelli).
<small>Compare with 0.19.1</small>
Don't crash on nested functions in __init__ methods (cd5af43 by Timothée Mazzucotelli). Issue #68
<small>Compare with 0.19.0</small>
Add load shortcut function for convenience (f38a42d by Timothée Mazzucotelli).
<small>Compare with 0.18.0</small>
load shortcut function for convenience (f38a42d by Timothée Mazzucotelli).*.pyi files (41518f4 by Timothée Mazzucotelli). Issue mkdocstrings/mkdocstrings#404dataclass decorators on classes (f579431 by Timothée Mazzucotelli).Add CLI option to disallow inspection (8f71a07 by Timothée Mazzucotelli).
<small>Compare with 0.17.0</small>
__all__ assignments (9a2128b by Timothée Mazzucotelli). Issue #40__init__ method (e195593 by François Rozet). Issue mkdocstrings/python#19, PR #65.
It allows to write "Parameters" sections in the docstring of the class itself.__len__ as boolean method (d465493 by Timothée Mazzucotelli).__all__ assignments (cbc103c by Timothée Mazzucotelli).@cached_property-decorated methods (bc068f8 by Timothée Mazzucotelli).Handle properties setters and deleters (50a4490 by Timothée Mazzucotelli).
<small>Compare with 0.16.0</small>
typing.overload decorator (927bbd9 by Timothée Mazzucotelli). Issue mkdocstrings/mkdocstrings#308runtime attribute to objects/aliases and handle type guarded objects (2f2a04e by Timothée Mazzucotelli). Issue #42Your coding agent can read these notes before it upgrades. Set up the MCP server →