Skip to content

Commit 5a92379

Browse files
committed
fix: Update imports when merging stubs
Issue-746: mkdocstrings/mkdocstrings#746
1 parent c86acd8 commit 5a92379

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

src/_griffe/merger.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ def _merge_stubs_overloads(obj: Module | Class, stubs: Module | Class) -> None:
5151

5252

5353
def _merge_stubs_members(obj: Module | Class, stubs: Module | Class) -> None:
54+
# Merge imports to later know if objects coming from the stubs were imported.
55+
obj.imports.update(stubs.imports)
56+
5457
for member_name, stub_member in stubs.members.items():
5558
if member_name in obj.members:
5659
# We don't merge imported stub objects that already exist in the concrete module.

tests/test_merger.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,14 @@ def hello(value: str) -> str: ...
3636
) as pkg:
3737
assert pkg["A.hello"].overloads
3838

39+
40+
def test_merge_imports() -> None:
41+
"""Assert that imports are merged correctly."""
42+
with temporary_visited_package(
43+
"package",
44+
{
45+
"mod.py": "import abc",
46+
"mod.pyi": "import collections",
47+
},
48+
) as pkg:
49+
assert set(pkg["mod"].imports) == {"abc", "collections"}

0 commit comments

Comments
 (0)