55from ctypes import c_int32 , c_int64
66from dataclasses import dataclass , field
77from concurrent .futures import Future , ThreadPoolExecutor
8- from typing import Dict , Optional , List , Any
8+ from typing import Dict , Optional , List , Any , Type , Union
99
1010from databricks .sql .common .http import HttpMethod
1111from databricks .sql .common .url_utils import normalize_host_with_protocol
@@ -125,19 +125,30 @@ def get_bool(self, name: str, default_value: bool = False) -> bool:
125125 value = self ._get_value (name )
126126 return value if type (value ) is bool else default_value
127127
128- def _get_int (self , name , integer_type , default_value ):
128+ def _get_int (
129+ self ,
130+ name : str ,
131+ integer_type : Type [Union [c_int32 , c_int64 ]],
132+ default_value : Optional [int ],
133+ ) -> Optional [int ]:
129134 value = self ._get_value (name )
130135 if type (value ) is int and integer_type (value ).value == value :
131136 return value
132137 return default_value
133138
134- def get_int32 (self , name : str , default_value = None ) -> Optional [int ]:
139+ def get_int32 (
140+ self , name : str , default_value : Optional [int ] = None
141+ ) -> Optional [int ]:
135142 return self ._get_int (name , c_int32 , default_value )
136143
137- def get_int64 (self , name : str , default_value = None ) -> Optional [int ]:
144+ def get_int64 (
145+ self , name : str , default_value : Optional [int ] = None
146+ ) -> Optional [int ]:
138147 return self ._get_int (name , c_int64 , default_value )
139148
140- def get_double (self , name : str , default_value = None ) -> Optional [float ]:
149+ def get_double (
150+ self , name : str , default_value : Optional [float ] = None
151+ ) -> Optional [float ]:
141152 value = self ._get_value (name )
142153 if type (value ) is int :
143154 try :
@@ -146,11 +157,15 @@ def get_double(self, name: str, default_value=None) -> Optional[float]:
146157 return default_value
147158 return value if type (value ) is float and math .isfinite (value ) else default_value
148159
149- def get_string (self , name : str , default_value = None ) -> Optional [str ]:
160+ def get_string (
161+ self , name : str , default_value : Optional [str ] = None
162+ ) -> Optional [str ]:
150163 value = self ._get_value (name )
151164 return value if isinstance (value , str ) else default_value
152165
153- def get_string_list (self , name : str , default_value = None ) -> Optional [List [str ]]:
166+ def get_string_list (
167+ self , name : str , default_value : Optional [List [str ]] = None
168+ ) -> Optional [List [str ]]:
154169 value = self ._get_value (name )
155170 if isinstance (value , list ) and all (isinstance (item , str ) for item in value ):
156171 return value
0 commit comments