16
16
# under the License.
17
17
import base64
18
18
import os
19
+ from typing import Optional
19
20
from urllib import parse
20
21
21
22
from selenium .webdriver .common .proxy import Proxy
@@ -28,10 +29,10 @@ def __init__(
28
29
remote_server_addr : str ,
29
30
keep_alive : bool = True ,
30
31
proxy : Proxy = Proxy (raw = {"proxyType" : ProxyType .SYSTEM }),
31
- username : str = None ,
32
- password : str = None ,
32
+ username : Optional [ str ] = None ,
33
+ password : Optional [ str ] = None ,
33
34
auth_type : str = "Basic" ,
34
- token : str = None ,
35
+ token : Optional [ str ] = None ,
35
36
) -> None :
36
37
self .remote_server_addr = remote_server_addr
37
38
self .keep_alive = keep_alive
@@ -46,7 +47,7 @@ def remote_server_addr(self) -> str:
46
47
return self ._remote_server_addr
47
48
48
49
@remote_server_addr .setter
49
- def remote_server_addr (self , value : str ):
50
+ def remote_server_addr (self , value : str ) -> None :
50
51
self ._remote_server_addr = value
51
52
52
53
@property
@@ -110,12 +111,12 @@ def token(self) -> str:
110
111
def token (self , value : str ) -> None :
111
112
self ._token = value
112
113
113
- def get_proxy_url (self ) -> str :
114
+ def get_proxy_url (self ) -> Optional [ str ] :
114
115
proxy_type = self .proxy .proxy_type
115
116
remote_add = parse .urlparse (self .remote_server_addr )
116
- if proxy_type == ProxyType .DIRECT :
117
+ if proxy_type is ProxyType .DIRECT :
117
118
return None
118
- if proxy_type == ProxyType .SYSTEM :
119
+ if proxy_type is ProxyType .SYSTEM :
119
120
_no_proxy = os .environ .get ("no_proxy" , os .environ .get ("NO_PROXY" ))
120
121
if _no_proxy :
121
122
for entry in map (str .strip , _no_proxy .split ("," )):
@@ -130,18 +131,18 @@ def get_proxy_url(self) -> str:
130
131
"https_proxy" if self .remote_server_addr .startswith ("https://" ) else "http_proxy" ,
131
132
os .environ .get ("HTTPS_PROXY" if self .remote_server_addr .startswith ("https://" ) else "HTTP_PROXY" ),
132
133
)
133
- if proxy_type == ProxyType .MANUAL :
134
+ if proxy_type is ProxyType .MANUAL :
134
135
return self .proxy .sslProxy if self .remote_server_addr .startswith ("https://" ) else self .proxy .http_proxy
135
136
return None
136
137
137
- def get_auth_header (self ):
138
+ def get_auth_header (self ) -> Optional [ dict ] :
138
139
auth_type = self .auth_type .lower ()
139
140
if auth_type == "basic" and self .username and self .password :
140
141
credentials = f"{ self .username } :{ self .password } "
141
- encoded_credentials = base64 .b64encode (credentials .encode ()).decode ()
142
+ encoded_credentials = base64 .b64encode (credentials .encode ("utf-8" )).decode ("utf-8" )
142
143
return {"Authorization" : f"Basic { encoded_credentials } " }
143
- elif auth_type == "bearer" and self .token :
144
+ if auth_type == "bearer" and self .token :
144
145
return {"Authorization" : f"Bearer { self .token } " }
145
- elif auth_type == "oauth" and self .token :
146
+ if auth_type == "oauth" and self .token :
146
147
return {"Authorization" : f"OAuth { self .token } " }
147
148
return None
0 commit comments