Coverage for src/lexigram/web/server/lifecycle.py: 58%

12 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 04:37 +0800

1"""Server lifecycle management""" 

2 

3from __future__ import annotations 

4 

5from typing import Any 

6 

7from lexigram.web.config import ServerConfig 

8 

9 

10class ServerLifecycle: 

11 """Manages server startup and shutdown lifecycle""" 

12 

13 def __init__(self, config: ServerConfig): 

14 self.config = config 

15 self.server: Any | None = None 

16 

17 async def start(self) -> None: 

18 """Start the server (handled by lexigram in pass-through mode)""" 

19 # In pass-through architecture, lexigram handles server lifecycle 

20 

21 async def stop(self) -> None: 

22 """Stop the server""" 

23 if self.server: 

24 self.server.close() 

25 await self.server.wait_closed()