Coverage for src/lexigram/web/constants.py: 91%

22 statements  

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

1"""Constants for lexigram-web.""" 

2 

3from __future__ import annotations 

4 

5import importlib.metadata 

6 

7# -- Version ------------------------------------------------------------------- 

8 

9try: 

10 __version__: str = importlib.metadata.version("lexigram-web") 

11except ImportError: 

12 __version__ = "0.0.0" 

13 

14# -- Environment Variable Prefixes ------------------------------------------- 

15 

16ENV_PREFIX: str = "LEX_WEB__" 

17ENV_NESTED_DELIMITER: str = "__" 

18 

19# -- Default Server Configuration -------------------------------------------- 

20 

21DEFAULT_HOST: str = "0.0.0.0" # noqa: S104 — config default; runner binds 127.0.0.1 

22DEFAULT_PORT: int = 8000 

23DEFAULT_WORKERS: int = 1 

24DEFAULT_RELOAD: bool = False 

25 

26# -- Route Paths ------------------------------------------------------------- 

27 

28DEFAULT_HEALTH_PATH: str = "/health" 

29DEFAULT_DOCS_PATH: str = "/docs" 

30DEFAULT_OPENAPI_PATH: str = "/openapi.json" 

31DEFAULT_DEBUG_ROUTES_PATH: str = "/_debug/routes" 

32 

33# -- Security Defaults ------------------------------------------------------- 

34 

35DEFAULT_CORS_ALLOW_ORIGINS: tuple[str, ...] = ("*",) 

36DEFAULT_RATE_LIMIT_REQUESTS: int = 100 

37DEFAULT_RATE_LIMIT_WINDOW: int = 60 

38 

39# -- Pagination Defaults ----------------------------------------------------- 

40 

41DEFAULT_PAGE_SIZE: int = 20 

42DEFAULT_MAX_PAGE_SIZE: int = 100 

43 

44__all__ = [ 

45 "DEFAULT_CORS_ALLOW_ORIGINS", 

46 "DEFAULT_DEBUG_ROUTES_PATH", 

47 "DEFAULT_DOCS_PATH", 

48 "DEFAULT_HEALTH_PATH", 

49 "DEFAULT_HOST", 

50 "DEFAULT_MAX_PAGE_SIZE", 

51 "DEFAULT_OPENAPI_PATH", 

52 "DEFAULT_PAGE_SIZE", 

53 "DEFAULT_PORT", 

54 "DEFAULT_RATE_LIMIT_REQUESTS", 

55 "DEFAULT_RATE_LIMIT_WINDOW", 

56 "DEFAULT_RELOAD", 

57 "DEFAULT_WORKERS", 

58 "ENV_NESTED_DELIMITER", 

59 "ENV_PREFIX", 

60]