Coverage for mindsdb / api / executor / datahub / classes / tables_row.py: 87%

45 statements  

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

1from dataclasses import dataclass, astuple 

2from datetime import datetime 

3 

4 

5class TABLES_ROW_TYPE: 

6 __slots__ = () 

7 BASE_TABLE = 'BASE TABLE' 

8 VIEW = 'VIEW' 

9 SYSTEM_VIEW = 'SYSTEM VIEW' 

10 

11 

12TABLES_ROW_TYPE = TABLES_ROW_TYPE() 

13 

14 

15@dataclass(slots=True) 

16class TablesRow: 

17 TABLE_CATALOG: str = 'def' 

18 TABLE_SCHEMA: str = 'information_schema' 

19 TABLE_NAME: str = None 

20 TABLE_TYPE: str = TABLES_ROW_TYPE.BASE_TABLE 

21 ENGINE: str = None 

22 VERSION: int = None 

23 ROW_FORMAT: str = None 

24 TABLE_ROWS: int = 0 

25 AVG_ROW_LENGTH: int = 0 

26 DATA_LENGTH: int = 0 

27 MAX_DATA_LENGTH: int = 0 

28 INDEX_LENGTH: int = 0 

29 DATA_FREE: int = 0 

30 AUTO_INCREMENT: int = None 

31 CREATE_TIME: datetime = datetime(2024, 1, 1) 

32 UPDATE_TIME: datetime = datetime(2024, 1, 1) 

33 CHECK_TIME: datetime = datetime(2024, 1, 1) 

34 TABLE_COLLATION: str = None 

35 CHECKSUM: int = None 

36 CREATE_OPTIONS: str = None 

37 TABLE_COMMENT: str = '' 

38 

39 def to_list(self) -> list: 

40 return list(astuple(self)) 

41 

42 @staticmethod 

43 def from_dict(data: dict): 

44 del_keys = [] 

45 data = {k.upper(): v for k, v in data.items()} 

46 

47 # table is different column 

48 if 'TABLE_NAME' not in data and 'NAME' in data: 48 ↛ 49line 48 didn't jump to line 49 because the condition on line 48 was never true

49 data['TABLE_NAME'] = data['NAME'] 

50 

51 for key in data: 

52 if key not in TablesRow.__dataclass_fields__: 52 ↛ 53line 52 didn't jump to line 53 because the condition on line 52 was never true

53 del_keys.append(key) 

54 

55 for key in del_keys: 55 ↛ 56line 55 didn't jump to line 56 because the loop on line 55 never started

56 del data[key] 

57 

58 return TablesRow(**data)