Coverage for src/lexigram/graphql/scalars/time.py: 75%

16 statements  

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

1from __future__ import annotations 

2 

3from datetime import time 

4 

5 

6class Time: 

7 """Custom scalar for time values.""" 

8 

9 @staticmethod 

10 def serialize(t: time | None) -> str | None: 

11 if t is None: 

12 return None 

13 if isinstance(t, time): 

14 return t.isoformat() 

15 raise ValueError(f"Cannot serialize {type(t)} as Time") 

16 

17 @staticmethod 

18 def parse_value(value: str | None) -> time | None: 

19 if value is None: 

20 return None 

21 return time.fromisoformat(value) 

22 

23 

24__all__ = [ 

25 "Time", 

26]