Skip to content

Commit 1307618

Browse files
committed
fix: support griffe v1, and backwads compat to v0.37.0
1 parent baa6c57 commit 1307618

File tree

11 files changed

+60
-37
lines changed

11 files changed

+60
-37
lines changed

quartodoc/_griffe_compat.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# flake8: noqa
2+
3+
try:
4+
from griffe import GriffeLoader
5+
from griffe import ModulesCollection, LinesCollection
6+
7+
import _griffe.models as dataclasses
8+
import _griffe.docstrings.models as docstrings
9+
import _griffe.expressions as expressions
10+
11+
from griffe import Parser, parse, parse_numpy
12+
from griffe import AliasResolutionError
13+
except ImportError:
14+
from griffe.loader import GriffeLoader
15+
from griffe.collections import ModulesCollection, LinesCollection
16+
17+
import griffe.dataclasses as dataclasses
18+
import griffe.docstrings.dataclasses as docstrings
19+
import griffe.expressions as expressions
20+
21+
from griffe.docstrings.parsers import Parser, parse
22+
from griffe.exceptions import AliasResolutionError

quartodoc/ast.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
import warnings
44

5+
from ._griffe_compat import docstrings as ds
6+
from ._griffe_compat import dataclasses as dc
7+
58
from enum import Enum
69
from dataclasses import dataclass
7-
from griffe.docstrings import dataclasses as ds
8-
from griffe import dataclasses as dc
910
from plum import dispatch
1011
from typing import Type, Union
1112

quartodoc/autosummary.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55
import warnings
66
import yaml
77

8+
from ._griffe_compat import GriffeLoader, ModulesCollection, LinesCollection
9+
from ._griffe_compat import dataclasses as dc
10+
from ._griffe_compat import Parser, parse
11+
812
from fnmatch import fnmatchcase
9-
from griffe.loader import GriffeLoader
10-
from griffe.collections import ModulesCollection, LinesCollection
11-
from griffe.dataclasses import Alias
12-
from griffe.docstrings.parsers import Parser, parse
13-
from griffe.docstrings import dataclasses as ds # noqa
14-
from griffe import dataclasses as dc
1513
from plum import dispatch # noqa
1614
from pathlib import Path
1715
from types import ModuleType
@@ -37,7 +35,7 @@
3735

3836
def parse_function(module: str, func_name: str):
3937
griffe = GriffeLoader()
40-
mod = griffe.load_module(module)
38+
mod = griffe.load(module)
4139

4240
f_data = mod.functions[func_name]
4341

@@ -66,7 +64,7 @@ def get_function(module: str, func_name: str, parser: str = "numpy") -> dc.Objec
6664
griffe = GriffeLoader(
6765
docstring_parser=Parser(parser), docstring_options=get_parser_defaults(parser)
6866
)
69-
mod = griffe.load_module(module)
67+
mod = griffe.load(module)
7068

7169
f_data = mod.functions[func_name]
7270

@@ -138,7 +136,7 @@ def get_object(
138136
# note that it is critical for performance that we only do this when necessary.
139137
root_mod = module.split(".", 1)[0]
140138
if root_mod not in loader.modules_collection:
141-
loader.load_module(module)
139+
loader.load(module)
142140

143141
# griffe uses only periods for the path
144142
griffe_path = f"{module}.{object_path}" if object_path else module
@@ -164,10 +162,10 @@ def get_object(
164162
# Alias objects can refer to objects imported from other modules.
165163
# in this case, we need to import the target's module in order to resolve
166164
# the alias
167-
if isinstance(f_data, Alias) and load_aliases:
165+
if isinstance(f_data, dc.Alias) and load_aliases:
168166
target_mod = f_data.target_path.split(".")[0]
169167
if target_mod != module:
170-
loader.load_module(target_mod)
168+
loader.load(target_mod)
171169

172170
return f_data
173171

quartodoc/builder/blueprint.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,15 @@
44
import json
55
import yaml
66

7-
from griffe import dataclasses as dc
8-
from griffe.loader import GriffeLoader
9-
from griffe.collections import ModulesCollection, LinesCollection
10-
from griffe.docstrings.parsers import Parser
11-
from griffe.exceptions import AliasResolutionError
7+
from .._griffe_compat import dataclasses as dc
8+
from .._griffe_compat import (
9+
GriffeLoader,
10+
ModulesCollection,
11+
LinesCollection,
12+
Parser,
13+
)
14+
15+
from .._griffe_compat import AliasResolutionError
1216
from functools import partial
1317
from textwrap import indent
1418

@@ -43,7 +47,7 @@
4347
def _auto_package(mod: dc.Module) -> list[Section]:
4448
"""Create default sections for the given package."""
4549

46-
import griffe.docstrings.dataclasses as ds
50+
from quartodoc._griffe_compat import docstrings as ds
4751

4852
has_all = "__all__" in mod.members
4953

quartodoc/inventory.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import sphobjinv as soi
44

5-
from griffe import dataclasses as dc
5+
from ._griffe_compat import dataclasses as dc
66
from plum import dispatch
77
from quartodoc import layout
88

quartodoc/layout.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
import griffe.dataclasses as dc
3+
from ._griffe_compat import dataclasses as dc
44
import logging
55

66
from enum import Enum

quartodoc/renderers/md_renderer.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
from contextlib import contextmanager
66
from functools import wraps
7-
from griffe.docstrings import dataclasses as ds
8-
from griffe import dataclasses as dc
9-
from griffe import expressions as expr
7+
from .._griffe_compat import docstrings as ds
8+
from .._griffe_compat import dataclasses as dc
9+
from .._griffe_compat import expressions as expr
1010
from tabulate import tabulate
1111
from plum import dispatch
1212
from typing import Tuple, Union, Optional
@@ -153,8 +153,6 @@ def signature(self, el: layout.Doc):
153153

154154
return res
155155

156-
157-
158156
@dispatch
159157
def signature(self, el: dc.Alias, source: Optional[dc.Alias] = None):
160158
return self.signature(el.final_target, el)
@@ -335,14 +333,14 @@ def render(self, el: Union[layout.DocClass, layout.DocModule]):
335333
[self.render(x) for x in raw_meths if isinstance(x, layout.Doc)]
336334
)
337335

338-
339336
str_sig = self.signature(el)
340337
sig_part = [str_sig] if self.show_signature else []
341338

342339
body = self.render(el.obj)
343340

344-
345-
return "\n\n".join([title, *sig_part, body, *attr_docs, *class_docs, *meth_docs])
341+
return "\n\n".join(
342+
[title, *sig_part, body, *attr_docs, *class_docs, *meth_docs]
343+
)
346344

347345
@dispatch
348346
def render(self, el: Union[layout.DocFunction, layout.DocAttribute]):

quartodoc/tests/test_ast.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import quartodoc.ast as qast
22
import pytest
33

4-
from griffe.docstrings import dataclasses as ds
5-
from griffe import dataclasses as dc
6-
from griffe.docstrings.parsers import parse_numpy
4+
from quartodoc._griffe_compat import docstrings as ds
5+
from quartodoc._griffe_compat import dataclasses as dc
6+
from quartodoc._griffe_compat import parse_numpy
77

88
from quartodoc import get_object
99

quartodoc/tests/test_basic.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import pytest
22

33
from quartodoc import get_object, get_function, MdRenderer
4-
from griffe.docstrings import dataclasses as ds
5-
from griffe import dataclasses as dc
4+
from quartodoc._griffe_compat import docstrings as ds
5+
from quartodoc._griffe_compat import dataclasses as dc
66

77
# TODO: rename to test_autosummary (or refactor autosummary into parts)
88

quartodoc/tests/test_builder_blueprint.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from functools import partial
2-
from griffe.exceptions import AliasResolutionError
2+
from quartodoc._griffe_compat import AliasResolutionError
33
from quartodoc import get_object
44
from quartodoc import layout as lo
55
from quartodoc.builder.blueprint import (

0 commit comments

Comments
 (0)