Skip to content

Commit 69ecf07

Browse files
GWealecopybara-github
authored andcommitted
fix: make DatabaseSessionService visible in API docs
Fixes #4331 Co-authored-by: George Weale <gweale@google.com> PiperOrigin-RevId: 933310174
1 parent 1ad348d commit 69ecf07

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

src/google/adk/sessions/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,7 @@ def __getattr__(name: str):
5555
raise missing_extra('sqlalchemy', 'db') from e
5656
return vars(module)['DatabaseSessionService']
5757
raise AttributeError(f'module {__name__!r} has no attribute {name!r}')
58+
59+
60+
def __dir__() -> list[str]:
61+
return sorted(__all__)

tests/unittests/sessions/test_session_service.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1784,3 +1784,15 @@ async def test_vertex_ai_session_service_raises_not_implemented_for_get_user_sta
17841784
service = VertexAiSessionService(project='proj', location='us-central1')
17851785
with pytest.raises(NotImplementedError):
17861786
await service.get_user_state(app_name='my_app', user_id='u1')
1787+
1788+
1789+
def test_database_session_service_visible_in_module_namespace():
1790+
"""DatabaseSessionService must be in dir() so Sphinx autodoc renders it.
1791+
1792+
It is imported lazily via module __getattr__, so without an explicit
1793+
__dir__ it drops out of the generated API reference (issue #4331).
1794+
"""
1795+
import google.adk.sessions as sessions_module
1796+
1797+
assert 'DatabaseSessionService' in dir(sessions_module)
1798+
assert sessions_module.DatabaseSessionService is DatabaseSessionService

0 commit comments

Comments
 (0)