from __future__ import annotations from threading import local from typing import Any, Callable from attrs import frozen @frozen class AttributeOverride: omit_if_default: bool | None = None rename: str | None = None omit: bool | None = None # Omit the field completely. struct_hook: Callable[[Any, Any], Any] | None = None # Structure hook to use. unstruct_hook: Callable[[Any], Any] | None = None # Structure hook to use. neutral = AttributeOverride() already_generating = local()