Skip to content

Commit 199609f

Browse files
committed
refactor: Use newer Griffe extensions
1 parent 489aaac commit 199609f

1 file changed

Lines changed: 7 additions & 13 deletions

File tree

src/griffe_typingdoc/extension.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
from collections import defaultdict
88
from typing import TYPE_CHECKING, Any
99

10-
from griffe.agents.extensions import VisitorExtension, When
11-
from griffe.agents.nodes import safe_get_annotation
10+
from griffe import Extension, safe_get_annotation
1211
from griffe.docstrings.dataclasses import DocstringParameter, DocstringSectionParameters
1312

1413
from griffe_typingdoc.typing_doc import __typing_doc__
@@ -20,32 +19,27 @@
2019
from typing import Annotated
2120

2221
if TYPE_CHECKING:
23-
from griffe.dataclasses import Function
22+
from griffe import Function, ObjectNode
2423

2524

2625
@__typing_doc__(description="Griffe extension parsing the `typing.doc` decorator.")
27-
class TypingDocExtension(VisitorExtension):
26+
class TypingDocExtension(Extension):
2827
"""Griffe extension parsing the `typing.doc` decorator."""
2928

30-
when = When.after_all
31-
3229
@__typing_doc__(description="Visit a function definition.")
33-
def visit_functiondef(
30+
def on_function_instance(
3431
self,
3532
node: Annotated[
36-
ast.FunctionDef,
37-
__typing_doc__(
38-
description="The AST node describing the function definition.",
39-
),
33+
ast.AST | ObjectNode,
34+
__typing_doc__(description="The object/AST node describing the function or its definition."),
4035
],
36+
func: Annotated[Function, __typing_doc__(description="The Griffe function just instantiated.")],
4137
) -> None:
4238
"""Visit a function definition.
4339
4440
This function takes a function definition node and visits its contents,
4541
particularly its decorators, to build up the documentation metadata.
4642
"""
47-
func: Function = self.visitor.current.members[node.name] # type: ignore[assignment]
48-
4943
func_doc = {}
5044
for decorator_node in node.decorator_list:
5145
if isinstance(decorator_node, ast.Call) and decorator_node.func.id == "__typing_doc__": # type: ignore[attr-defined]

0 commit comments

Comments
 (0)