Source code for tibco.liveview.models.table_metadata
from typing import Optional, List
[docs]class TableMetadata:
"""LiveView Table metadata. A TableMetadata object should not be instantiated
directly, but should be obtained through LiveViewClient#get_table_metadata().
Attributes:
- name (str): The name of the table
- schema (str): The schema of the table
- keys (list): The key(s) of the table
Parameters:
- table_metadata: The swagger table_info returned by a get_table request.
"""
def __init__(self, tbl) -> None:
self._info = tbl.to_dict()
self.name = self._info.get('name')
self.schema = self._info.get('schema')
self.keys = self._info.get('indices')
[docs] def column_names(self) -> List[str]:
"""Get a list of all the column names of this table"""
return list(self.schema.keys())
[docs] def to_dict(self) -> dict:
"""Returns the table as a dict, including all advanced fields.
Returns:
dict: this table's metadata
"""
return self._info
def __str__(self) -> str:
return f'Name: {self.name},\nSchema: {self.schema},\nKeys: {self.keys}'
[docs] def get(self, field) -> Optional[str]:
"""Get the value of a field from this table's metadata
"""
return self._info.get(field)