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."
With uv
:
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 changesPass 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:
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 PythonWith 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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4