griffe 1.14.0


pip install griffe

  Latest version

Released: Sep 05, 2025


Meta
Author: Timothée Mazzucotelli
Requires Python: >=3.9

Classifiers

Development Status
  • 5 - Production/Stable

Intended Audience
  • Developers

Programming Language
  • Python
  • Python :: 3
  • Python :: 3 :: Only
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14

Topic
  • Documentation
  • Software Development
  • Software Development :: Documentation
  • Utilities

Typing
  • Typed

Griffe

ci documentation pypi version gitter radicle

Griffe logo, created by François Rozet

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.

Griffe, pronounced "grif" (/ɡʁif/), is a french word that means "claw", but also "signature" in a familiar way. "On reconnaît bien là sa griffe."

Installation

pip install griffe

With uv:

uv tool install griffe

Usage

Dump JSON-serialized API

On the command line, pass the names of packages to the griffe dump command:

$ griffe dump httpx fastapi
{
  "httpx": {
    "name": "httpx",
    ...
  },
  "fastapi": {
    "name": "fastapi",
    ...
  }
}

See the Serializing chapter for more examples.

Check for API breaking changes

Pass a relative path to the griffe check command:

$ griffe check mypackage --verbose
mypackage/mymodule.py:10: MyClass.mymethod(myparam):
Parameter kind was changed:
  Old: positional or keyword
  New: keyword-only

For src layouts:

$ griffe check --search src mypackage --verbose
src/mypackage/mymodule.py:10: MyClass.mymethod(myparam):
Parameter kind was changed:
  Old: positional or keyword
  New: keyword-only

It's also possible to directly check packages from PyPI.org (or other indexes configured through PIP_INDEX_URL). This feature is available to sponsors only and requires that you install Griffe with the pypi extra:

pip install griffe[pypi]

The command syntax is:

griffe check package_name -b project-name==2.0 -a project-name==1.0

See the Checking chapter for more examples.

Load and navigate data with Python

With Python, loading a package:

import griffe

fastapi = griffe.load("fastapi")

Finding breaking changes:

import griffe

previous = griffe.load_git("mypackage", ref="0.2.0")
current = griffe.load("mypackage")

for breakage in griffe.find_breaking_changes(previous, current):
    ...

See the Loading chapter for more examples.

1.14.0 Sep 05, 2025
1.13.0 Aug 26, 2025
1.12.1 Aug 14, 2025
1.12.0 Aug 14, 2025
1.11.1 Aug 11, 2025
1.11.0 Aug 07, 2025
1.10.0 Aug 06, 2025
1.9.0 Jul 28, 2025
1.8.0 Jul 22, 2025
1.7.3 Apr 23, 2025
1.7.2 Apr 01, 2025
1.7.1 Mar 29, 2025
1.7.0 Mar 27, 2025
1.6.3 Mar 26, 2025
1.6.2 Mar 20, 2025
1.6.1 Mar 18, 2025
1.6.0 Mar 01, 2025
1.5.7 Feb 11, 2025
1.5.6 Jan 30, 2025
1.5.5 Jan 16, 2025
1.5.4 Dec 26, 2024
1.5.3 Dec 26, 2024
1.5.2 Dec 26, 2024
1.5.1 Oct 18, 2024
1.5.0 Oct 17, 2024
1.4.1 Oct 11, 2024
1.4.0 Oct 11, 2024
1.3.2 Oct 01, 2024
1.3.1 Sep 12, 2024
1.3.0 Sep 10, 2024
1.2.0 Aug 23, 2024
1.1.1 Aug 20, 2024
1.1.0 Aug 17, 2024
1.0.0 Aug 16, 2024
0.49.0 Aug 14, 2024
0.48.0 Jul 15, 2024
0.47.0 Jun 18, 2024
0.46.1 Jun 17, 2024
0.46.0 Jun 16, 2024
0.45.3 Jun 09, 2024
0.45.2 May 23, 2024
0.45.1 May 18, 2024
0.45.0 May 12, 2024
0.44.0 Apr 19, 2024
0.43.0 Apr 18, 2024
0.42.2 Apr 15, 2024
0.42.1 Mar 19, 2024
0.42.0 Mar 11, 2024
0.41.3 Mar 04, 2024
0.41.2 Mar 03, 2024
0.41.1 Mar 01, 2024
0.41.0 Feb 26, 2024
0.40.1 Feb 08, 2024
0.40.0 Jan 30, 2024
0.39.1 Jan 18, 2024
0.39.0 Jan 16, 2024
0.38.1 Dec 06, 2023
0.38.0 Nov 13, 2023
0.37.0 Nov 12, 2023
0.36.9 Oct 26, 2023
0.36.8 Oct 25, 2023
0.36.7 Oct 17, 2023
0.36.6 Oct 16, 2023
0.36.5 Oct 09, 2023
0.36.4 Sep 28, 2023
0.36.3 Sep 28, 2023
0.36.2 Sep 10, 2023
0.36.1 Sep 04, 2023
0.36.0 Sep 01, 2023
0.35.2 Aug 27, 2023
0.35.1 Aug 26, 2023
0.35.0 Aug 24, 2023
0.34.0 Aug 20, 2023
0.33.0 Aug 16, 2023
0.32.3 Jul 17, 2023
0.32.2 Jul 16, 2023
0.32.1 Jul 15, 2023
0.32.0 Jul 13, 2023
0.31.0 Jul 04, 2023
0.30.1 Jul 02, 2023
0.30.0 Jul 01, 2023
0.29.1 Jun 19, 2023
0.29.0 May 26, 2023
0.28.2 May 24, 2023
0.28.1 May 22, 2023
0.28.0 May 17, 2023
0.27.5 May 12, 2023
0.27.4 May 10, 2023
0.27.3 May 05, 2023
0.27.2 May 03, 2023
0.27.1 Apr 16, 2023
0.27.0 Apr 10, 2023
0.26.0 Apr 03, 2023
0.25.5 Feb 16, 2023
0.25.4 Jan 19, 2023
0.25.3 Jan 04, 2023
0.25.2 Dec 23, 2022
0.25.1 Dec 20, 2022
0.25.0 Dec 11, 2022
0.24.1 Nov 18, 2022
0.24.0 Nov 13, 2022
0.23.0 Oct 26, 2022
0.22.2 Sep 24, 2022
0.22.1 Sep 10, 2022
0.22.0 Jun 28, 2022
0.21.0 Jun 25, 2022
0.20.0 Jun 03, 2022
0.19.3 May 26, 2022
0.19.2 May 18, 2022
0.19.1 May 07, 2022
0.19.0 May 06, 2022
0.18.0 Apr 19, 2022
0.17.0 Apr 15, 2022
0.16.0 Apr 09, 2022
0.15.1 Apr 08, 2022
0.15.0 Apr 03, 2022
0.14.1 Apr 01, 2022
0.14.0 Mar 05, 2022
0.13.2 Mar 01, 2022
0.13.1 Feb 24, 2022
0.13.0 Feb 23, 2022
0.12.6 Feb 18, 2022
0.12.5 Feb 17, 2022
0.12.4 Feb 16, 2022
0.12.3 Feb 15, 2022
0.12.2 Feb 13, 2022
0.12.1 Feb 12, 2022
0.12.0 Feb 12, 2022
0.11.7 Feb 12, 2022
0.11.6 Feb 10, 2022
0.11.5 Feb 08, 2022
0.11.4 Feb 07, 2022
0.11.3 Feb 05, 2022
0.11.2 Feb 03, 2022
0.11.1 Feb 01, 2022
0.11.0 Jan 31, 2022
0.10.0 Jan 14, 2022
0.9.0 Jan 04, 2022
0.8.0 Jan 02, 2022
0.7.1 Dec 28, 2021
0.7.0 Dec 28, 2021
0.6.0 Dec 27, 2021
0.5.0 Dec 20, 2021
0.4.0 Nov 28, 2021
0.3.0 Nov 21, 2021
0.2.0 Sep 25, 2021
0.1.0 Sep 09, 2021

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras: None
Dependencies:
colorama (>=0.4)