11import json
22import time
33
4- from urllib .parse import urlencode
4+ from urllib .parse import urlencode , urlparse
55from binance .error import (
66 ParameterRequiredError ,
77 ParameterValueError ,
@@ -40,7 +40,7 @@ def check_enum_parameter(value, enum_class):
4040
4141
4242def check_type_parameter (value , name , data_type ):
43- if value is not None and type (value ) != data_type :
43+ if value is not None and not isinstance (value , data_type ) :
4444 raise ParameterTypeError ([name , data_type ])
4545
4646
@@ -64,3 +64,19 @@ def convert_list_to_json_array(symbols):
6464
6565def config_logging (logging , logging_devel , log_file = None ):
6666 logging .basicConfig (level = logging_devel , filename = log_file )
67+
68+
69+ def parse_proxies (proxies : dict ):
70+ """Parse proxy url from dict, only support http and https proxy, not support socks5 proxy"""
71+ proxy_url = proxies .get ("http" ) or proxies .get ("https" )
72+ if not proxy_url :
73+ return {}
74+
75+ parsed = urlparse (proxy_url )
76+ return {
77+ "http_proxy_host" : parsed .hostname ,
78+ "http_proxy_port" : parsed .port ,
79+ "http_proxy_auth" : (parsed .username , parsed .password )
80+ if parsed .username and parsed .password
81+ else None ,
82+ }
0 commit comments