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
« 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
5class TABLES_ROW_TYPE:
6 __slots__ = ()
7 BASE_TABLE = 'BASE TABLE'
8 VIEW = 'VIEW'
9 SYSTEM_VIEW = 'SYSTEM VIEW'
12TABLES_ROW_TYPE = TABLES_ROW_TYPE()
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 = ''
39 def to_list(self) -> list:
40 return list(astuple(self))
42 @staticmethod
43 def from_dict(data: dict):
44 del_keys = []
45 data = {k.upper(): v for k, v in data.items()}
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']
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)
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]
58 return TablesRow(**data)