1
- # -*- coding: utf-8 -*-
2
1
"""
3
2
h2/config
4
3
~~~~~~~~~
7
6
"""
8
7
9
8
import sys
9
+ from typing import Any , Optional , Union
10
10
11
11
12
12
class _BooleanConfigOption :
13
13
"""
14
14
Descriptor for handling a boolean config option. This will block
15
15
attempts to set boolean config options to non-bools.
16
16
"""
17
- def __init__ (self , name ) :
17
+ def __init__ (self , name : str ) -> None :
18
18
self .name = name
19
19
self .attr_name = '_%s' % self .name
20
20
21
- def __get__ (self , instance , owner ) :
22
- return getattr (instance , self .attr_name )
21
+ def __get__ (self , instance : Any , owner : Any ) -> bool :
22
+ return getattr (instance , self .attr_name ) # type: ignore
23
23
24
- def __set__ (self , instance , value ) :
24
+ def __set__ (self , instance : Any , value : bool ) -> None :
25
25
if not isinstance (value , bool ):
26
26
raise ValueError ("%s must be a bool" % self .name )
27
27
setattr (instance , self .attr_name , value )
@@ -35,16 +35,16 @@ class DummyLogger:
35
35
conditionals being sprinkled throughout the h2 code for calls to
36
36
logging functions when no logger is passed into the corresponding object.
37
37
"""
38
- def __init__ (self , * vargs ):
38
+ def __init__ (self , * vargs ) -> None : # type: ignore
39
39
pass
40
40
41
- def debug (self , * vargs , ** kwargs ):
41
+ def debug (self , * vargs , ** kwargs ) -> None : # type: ignore
42
42
"""
43
43
No-op logging. Only level needed for now.
44
44
"""
45
45
pass
46
46
47
- def trace (self , * vargs , ** kwargs ):
47
+ def trace (self , * vargs , ** kwargs ) -> None : # type: ignore
48
48
"""
49
49
No-op logging. Only level needed for now.
50
50
"""
@@ -61,15 +61,15 @@ class OutputLogger:
61
61
Defaults to ``sys.stderr``.
62
62
:param trace: Enables trace-level output. Defaults to ``False``.
63
63
"""
64
- def __init__ (self , file = None , trace_level = False ):
64
+ def __init__ (self , file = None , trace_level = False ): # type: ignore
65
65
super ().__init__ ()
66
66
self .file = file or sys .stderr
67
67
self .trace_level = trace_level
68
68
69
- def debug (self , fmtstr , * args ):
69
+ def debug (self , fmtstr , * args ): # type: ignore
70
70
print (f"h2 (debug): { fmtstr % args } " , file = self .file )
71
71
72
- def trace (self , fmtstr , * args ):
72
+ def trace (self , fmtstr , * args ): # type: ignore
73
73
if self .trace_level :
74
74
print (f"h2 (trace): { fmtstr % args } " , file = self .file )
75
75
@@ -165,14 +165,14 @@ class H2Configuration:
165
165
)
166
166
167
167
def __init__ (self ,
168
- client_side = True ,
169
- header_encoding = None ,
170
- validate_outbound_headers = True ,
171
- normalize_outbound_headers = True ,
172
- split_outbound_cookies = False ,
173
- validate_inbound_headers = True ,
174
- normalize_inbound_headers = True ,
175
- logger = None ):
168
+ client_side : bool = True ,
169
+ header_encoding : Optional [ Union [ bool , str ]] = None ,
170
+ validate_outbound_headers : bool = True ,
171
+ normalize_outbound_headers : bool = True ,
172
+ split_outbound_cookies : bool = False ,
173
+ validate_inbound_headers : bool = True ,
174
+ normalize_inbound_headers : bool = True ,
175
+ logger : Optional [ Union [ DummyLogger , OutputLogger ]] = None ) -> None :
176
176
self .client_side = client_side
177
177
self .header_encoding = header_encoding
178
178
self .validate_outbound_headers = validate_outbound_headers
@@ -183,7 +183,7 @@ def __init__(self,
183
183
self .logger = logger or DummyLogger (__name__ )
184
184
185
185
@property
186
- def header_encoding (self ):
186
+ def header_encoding (self ) -> Optional [ Union [ bool , str ]] :
187
187
"""
188
188
Controls whether the headers emitted by this object in events are
189
189
transparently decoded to ``unicode`` strings, and what encoding is used
@@ -195,7 +195,7 @@ def header_encoding(self):
195
195
return self ._header_encoding
196
196
197
197
@header_encoding .setter
198
- def header_encoding (self , value ) :
198
+ def header_encoding (self , value : Optional [ Union [ bool , str ]]) -> None :
199
199
"""
200
200
Enforces constraints on the value of header encoding.
201
201
"""
0 commit comments