3434)
3535from urllib .parse import urlparse
3636
37- from hive_metastore .v4 .ThriftHiveMetastore import Client
38- from hive_metastore .v4 .ttypes import (
37+ from hive_metastore .v3 .ThriftHiveMetastore import Client
38+ from hive_metastore .v3 .ttypes import (
3939 AlreadyExistsException ,
4040 CheckLockRequest ,
4141 EnvironmentContext ,
5555 StorageDescriptor ,
5656 UnlockRequest ,
5757)
58- from hive_metastore .v4 .ttypes import (
58+ from hive_metastore .v3 .ttypes import (
5959 Database as HiveDatabase ,
6060)
61- from hive_metastore .v4 .ttypes import (
61+ from hive_metastore .v3 .ttypes import (
6262 Table as HiveTable ,
6363)
6464from tenacity import retry , retry_if_exception_type , stop_after_attempt , wait_exponential
153153
154154logger = logging .getLogger (__name__ )
155155
156+ v3type = importlib .import_module ("hive_metastore.v3.ttypes" )
157+ v4type = importlib .import_module ("hive_metastore.v4.ttypes" )
156158
157159class _HiveClient :
158160 """Helper class to nicely open and close the transport."""
159161
160- _transport : TTransport
162+ _transport : TTransport . TTransportBase
161163 _ugi : Optional [List [str ]]
162164 _hive_version : HiveVersion = HiveVersion (4 , 0 , 0 )
163165 _hms_v3 : object
@@ -184,8 +186,10 @@ def _get_hive_version(self) -> HiveVersion:
184186 version = map (int , open_client .getVersion ().split ("." ))
185187 return HiveVersion (* version )
186188
187- def _init_thrift_transport (self ) -> TTransport :
189+ def _init_thrift_transport (self ) -> TTransport . TTransportBase :
188190 url_parts = urlparse (self ._uri )
191+ if not url_parts .hostname or not url_parts .port :
192+ raise ValueError ("hive hostname and port must be set" )
189193 socket = TSocket .TSocket (url_parts .hostname , url_parts .port )
190194 if not self ._kerberos_auth :
191195 return TTransport .TBufferedTransport (socket )
0 commit comments