Coverage for src / lexigram / contracts / web / http_constants.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-08-19 05:41 +0800

1"""Canonical HTTP constants shared across all Lexigram packages. 

2 

3These constants represent well-known HTTP values that would otherwise be 

4duplicated in every package that speaks HTTP. Import from here rather 

5than hard-coding strings in individual extension packages. 

6 

7Example:: 

8 

9 from lexigram.contracts.web.http_constants import GET, CONTENT_TYPE_JSON 

10""" 

11 

12from __future__ import annotations 

13 

14# --------------------------------------------------------------------------- 

15# HTTP Methods 

16# --------------------------------------------------------------------------- 

17 

18GET = "GET" 

19POST = "POST" 

20PUT = "PUT" 

21DELETE = "DELETE" 

22PATCH = "PATCH" 

23HEAD = "HEAD" 

24OPTIONS = "OPTIONS" 

25 

26# --------------------------------------------------------------------------- 

27# Content-Type values 

28# --------------------------------------------------------------------------- 

29 

30CONTENT_TYPE_JSON = "application/json" 

31CONTENT_TYPE_FORM = "application/x-www-form-urlencoded" 

32CONTENT_TYPE_TEXT = "text/plain" 

33CONTENT_TYPE_HTML = "text/html" 

34CONTENT_TYPE_MULTIPART = "multipart/form-data" 

35CONTENT_TYPE_BYTES = "application/octet-stream" 

36 

37# --------------------------------------------------------------------------- 

38# Common header names (lowercase per HTTP/2 standard) 

39# --------------------------------------------------------------------------- 

40 

41HEADER_CONTENT_TYPE = "content-type" 

42HEADER_AUTHORIZATION = "authorization" 

43HEADER_ACCEPT = "accept" 

44HEADER_USER_AGENT = "user-agent" 

45HEADER_X_REQUEST_ID = "x-request-id" 

46 

47# --------------------------------------------------------------------------- 

48# Default encoding 

49# --------------------------------------------------------------------------- 

50 

51DEFAULT_ENCODING = "utf-8" 

52 

53__all__ = [ 

54 "CONTENT_TYPE_BYTES", 

55 "CONTENT_TYPE_FORM", 

56 "CONTENT_TYPE_HTML", 

57 "CONTENT_TYPE_JSON", 

58 "CONTENT_TYPE_MULTIPART", 

59 "CONTENT_TYPE_TEXT", 

60 "DEFAULT_ENCODING", 

61 "DELETE", 

62 "GET", 

63 "HEAD", 

64 "HEADER_ACCEPT", 

65 "HEADER_AUTHORIZATION", 

66 "HEADER_CONTENT_TYPE", 

67 "HEADER_USER_AGENT", 

68 "HEADER_X_REQUEST_ID", 

69 "OPTIONS", 

70 "PATCH", 

71 "POST", 

72 "PUT", 

73]