Coverage for mindsdb / api / mysql / mysql_proxy / classes / client_capabilities.py: 63%

97 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-21 00:36 +0000

1from mindsdb.api.mysql.mysql_proxy.libs.constants.mysql import CAPABILITIES 

2 

3 

4class ClentCapabilities(): 

5 _capabilities = 0 

6 

7 def __init__(self, capabilities): 

8 self._capabilities = capabilities 

9 

10 def has(self, cap): 

11 return cap & self._capabilities > 0 

12 

13 def to_dict(self): 

14 funcs = [func for func in dir(self) if func.upper() == func] 

15 res = {} 

16 for f in funcs: 

17 res[f] = getattr(self, f) 

18 return res 

19 

20 @property 

21 def LONG_PASSWORD(self): 

22 return self.has(CAPABILITIES.CLIENT_LONG_PASSWORD) 

23 

24 @property 

25 def FOUND_ROWS(self): 

26 return self.has(CAPABILITIES.CLIENT_FOUND_ROWS) 

27 

28 @property 

29 def LONG_FLAG(self): 

30 return self.has(CAPABILITIES.CLIENT_LONG_FLAG) 

31 

32 @property 

33 def CONNECT_WITH_DB(self): 

34 return self.has(CAPABILITIES.CLIENT_CONNECT_WITH_DB) 

35 

36 @property 

37 def NO_SCHEMA(self): 

38 return self.has(CAPABILITIES.CLIENT_NO_SCHEMA) 

39 

40 @property 

41 def COMPRESS(self): 

42 return self.has(CAPABILITIES.CLIENT_COMPRESS) 

43 

44 @property 

45 def ODBC(self): 

46 return self.has(CAPABILITIES.CLIENT_ODBC) 

47 

48 @property 

49 def LOCAL_FILES(self): 

50 return self.has(CAPABILITIES.CLIENT_LOCAL_FILES) 

51 

52 @property 

53 def IGNORE_SPACE(self): 

54 return self.has(CAPABILITIES.CLIENT_IGNORE_SPACE) 

55 

56 @property 

57 def PROTOCOL_41(self): 

58 return self.has(CAPABILITIES.CLIENT_PROTOCOL_41) 

59 

60 @property 

61 def INTERACTIVE(self): 

62 return self.has(CAPABILITIES.CLIENT_INTERACTIVE) 

63 

64 @property 

65 def SSL(self): 

66 return self.has(CAPABILITIES.CLIENT_SSL) 

67 

68 @property 

69 def IGNORE_SIGPIPE(self): 

70 return self.has(CAPABILITIES.CLIENT_IGNORE_SIGPIPE) 

71 

72 @property 

73 def TRANSACTIONS(self): 

74 return self.has(CAPABILITIES.CLIENT_TRANSACTIONS) 

75 

76 @property 

77 def RESERVED(self): 

78 return self.has(CAPABILITIES.CLIENT_RESERVED) 

79 

80 @property 

81 def RESERVED2(self): 

82 return self.has(CAPABILITIES.CLIENT_RESERVED2) 

83 

84 @property 

85 def MULTI_STATEMENTS(self): 

86 return self.has(CAPABILITIES.CLIENT_MULTI_STATEMENTS) 

87 

88 @property 

89 def MULTI_RESULTS(self): 

90 return self.has(CAPABILITIES.CLIENT_MULTI_RESULTS) 

91 

92 @property 

93 def PS_MULTI_RESULTS(self): 

94 return self.has(CAPABILITIES.CLIENT_PS_MULTI_RESULTS) 

95 

96 @property 

97 def PLUGIN_AUTH(self): 

98 return self.has(CAPABILITIES.CLIENT_PLUGIN_AUTH) 

99 

100 @property 

101 def CONNECT_ATTRS(self): 

102 return self.has(CAPABILITIES.CLIENT_CONNECT_ATTRS) 

103 

104 @property 

105 def PLUGIN_AUTH_LENENC_CLIENT_DATA(self): 

106 return self.has(CAPABILITIES.CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA) 

107 

108 @property 

109 def CAN_HANDLE_EXPIRED_PASSWORDS(self): 

110 return self.has(CAPABILITIES.CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS) 

111 

112 @property 

113 def SESSION_TRACK(self): 

114 return self.has(CAPABILITIES.CLIENT_SESSION_TRACK) 

115 

116 @property 

117 def DEPRECATE_EOF(self): 

118 return self.has(CAPABILITIES.CLIENT_DEPRECATE_EOF) 

119 

120 @property 

121 def SSL_VERIFY_SERVER_CERT(self): 

122 return self.has(CAPABILITIES.CLIENT_SSL_VERIFY_SERVER_CERT) 

123 

124 @property 

125 def REMEMBER_OPTIONS(self): 

126 return self.has(CAPABILITIES.CLIENT_REMEMBER_OPTIONS) 

127 

128 @property 

129 def SECURE_CONNECTION(self): 

130 return self.has(CAPABILITIES.CLIENT_SECURE_CONNECTION)