Coverage for src / lexigram / contracts / admin / route_spec.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-15 18:58 +0800

1from __future__ import annotations 

2 

3from dataclasses import dataclass, field 

4from typing import Any, Literal 

5 

6HttpMethod = Literal["GET", "POST", "PUT", "PATCH", "DELETE"] 

7 

8 

9@dataclass(frozen=True, kw_only=True) 

10class AdminRouteSpec: 

11 """Contributor-supplied route, registered automatically by admin's router.""" 

12 

13 path: str 

14 method: HttpMethod = "GET" 

15 handler: Any 

16 name: str 

17 permissions: frozenset[str] = field(default_factory=frozenset) 

18 

19 

20__all__ = ["AdminRouteSpec"]