Griffe
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 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.
Sponsors
And 4 more private sponsor(s).
Metadata
Release files for griffe 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| griffe-2.4.0.tar.gz | 446.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| griffe-2.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 451.9 kB
Release files / griffe-2.4.0.tar.gz
| Download URL | griffe-2.4.0.tar.gz |
|---|---|
| Size | 446.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3bfcbe946a5a457d14d51cc5bd77e0b772f87821b419ca76bd1b1f95371f2afa
|
|
BLAKE2b-256 checksum How to use checksums |
a08afc3b9c9ebe3aa09490fcf1d24a0f8bebb88e5781abbc7506848644648aec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Release files / griffe-2.4.0-py3-none-any.whl
| Download URL | griffe-2.4.0-py3-none-any.whl |
|---|---|
| Size | 5.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
23752bee668b22e25cca88b931f42ae826484c7b3cb3dd59a8ab0d9b36a296bd
|
|
BLAKE2b-256 checksum How to use checksums |
02e7b2c6194a8636c60eed0044e8d0f8b37066c1bc654dd02a0a83408870044d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.0
|
Security for griffe 2.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.