Source code for edri.api.headerkit.policy
from __future__ import annotations
from dataclasses import dataclass
from enum import Enum
__all__ = ["HeaderPolicy", "ParseMode", "UnknownHeaderMode", "COMPAT_POLICY", "STRICT_POLICY"]
[docs]
class UnknownHeaderMode(str, Enum):
RAW = "raw" # expose repeated raw values only; do not combine
COMBINE = "combine" # allow comma combination for callers that opt in
REJECT_DUPES = "reject-dupes"
[docs]
@dataclass(frozen=True, slots=True)
class HeaderPolicy:
mode: ParseMode = ParseMode.STRICT
unknown: UnknownHeaderMode = UnknownHeaderMode.RAW
max_total_bytes: int = 64 * 1024
max_field_lines: int = 256
allow_obs_text: bool = True
strip_ows: bool = True
STRICT_POLICY = HeaderPolicy()
COMPAT_POLICY = HeaderPolicy(mode=ParseMode.COMPAT, unknown=UnknownHeaderMode.RAW)