Skip to content

Commit 67df10c

Browse files
committed
fix: Prevent alias resolution error when source-ordering members
Issue griffe#213: mkdocstrings/griffe#213
1 parent b305634 commit 67df10c

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/mkdocstrings_handlers/python/rendering.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ def _sort_key_alphabetical(item: CollectorItem) -> Any:
3737

3838
def _sort_key_source(item: CollectorItem) -> Any:
3939
# if 'lineno' is none, the item will go to the start of the list.
40+
if item.is_alias:
41+
return item.alias_lineno if item.alias_lineno is not None else -1
4042
return item.lineno if item.lineno is not None else -1
4143

4244

tests/test_rendering.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,12 @@ def test_ordering_members(order: rendering.Order, members_list: list[str | None]
156156
"""
157157

158158
class Obj:
159-
def __init__(self, name: str, lineno: int | None = None) -> None:
159+
def __init__(self, name: str, lineno: int | None = None, *, is_alias: bool = False) -> None:
160160
self.name = name
161161
self.lineno = lineno
162+
self.alias_lineno = lineno
163+
self.is_alias = is_alias
162164

163-
members = [Obj("a", 10), Obj("b", 9), Obj("c", 8)]
165+
members = [Obj("a", 10, is_alias=True), Obj("b", 9, is_alias=False), Obj("c", 8, is_alias=True)]
164166
ordered = rendering.do_order_members(members, order, members_list) # type: ignore[arg-type]
165167
assert [obj.name for obj in ordered] == expected_names

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy