Coverage for src/lexigram/graphql/scalars/date.py: 100%

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 date 

4 

5 

6class Date: 

7 """Custom scalar for date values.""" 

8 

9 @staticmethod 

10 def serialize(d: date | None) -> str | None: 

11 if d is None: 

12 return None 

13 if isinstance(d, date): 

14 return d.isoformat() 

15 raise ValueError(f"Cannot serialize {type(d)} as Date") 

16 

17 @staticmethod 

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

19 if value is None: 

20 return None 

21 return date.fromisoformat(value) 

22 

23 

24__all__ = [ 

25 "Date", 

26]