@@ -14,7 +14,7 @@ from email._header_value_parser import (
14
14
)
15
15
from email .errors import MessageDefect
16
16
from email .policy import Policy
17
- from typing import Any , ClassVar
17
+ from typing import Any , ClassVar , Protocol
18
18
from typing_extensions import Literal
19
19
20
20
class BaseHeader (str ):
@@ -141,9 +141,19 @@ if sys.version_info >= (3, 8):
141
141
@staticmethod
142
142
def value_parser (value : str ) -> MessageID : ...
143
143
144
+ class _HeaderParser (Protocol ):
145
+ max_count : ClassVar [Literal [1 ] | None ]
146
+ @staticmethod
147
+ def value_parser (value : str ) -> TokenList : ...
148
+ @classmethod
149
+ def parse (cls , value : str , kwds : dict [str , Any ]) -> None : ...
150
+
144
151
class HeaderRegistry :
152
+ registry : dict [str , type [_HeaderParser ]]
153
+ base_class : type [BaseHeader ]
154
+ default_class : type [_HeaderParser ]
145
155
def __init__ (
146
- self , base_class : type [BaseHeader ] = ..., default_class : type [BaseHeader ] = ..., use_default_map : bool = ...
156
+ self , base_class : type [BaseHeader ] = ..., default_class : type [_HeaderParser ] = ..., use_default_map : bool = ...
147
157
) -> None : ...
148
158
def map_to_type (self , name : str , cls : type [BaseHeader ]) -> None : ...
149
159
def __getitem__ (self , name : str ) -> type [BaseHeader ]: ...
0 commit comments