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 ParseMode(str, Enum): STRICT = "strict" COMPAT = "compat"
[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)