| 736 | |
| 737 | |
| 738 | class SXTTable(SXTResource): |
| 739 | access_type: SXTTableAccessType |
| 740 | __pc__: str = None |
| 741 | |
| 742 | def __init__(self, name:str='', from_file:Path=None, default_user:SXTUser = None, |
| 743 | private_key:str = '', new_keypair:bool = False, key_manager:SXTKeyManager = None, |
| 744 | access_type:SXTTableAccessType = SXTTableAccessType.PERMISSIONED, |
| 745 | application_name:str = None, start_time:datetime = None, |
| 746 | default_local_folder:Path = None, |
| 747 | logger:logging.Logger = None, SpaceAndTime_parent:object = None) -> None: |
| 748 | """-------------------- |
| 749 | Creates a new Space and Time Table object. |
| 750 | |
| 751 | Accepts a good number of settings during init, either individually (name, private_key, |
| 752 | access_type) or use from_file to pass in Path to a save() file to reload previous config. |
| 753 | Similarly, object parameters can be passed in individually (application_name, logger, |
| 754 | key_manager, default_user) or pass in the SpaceAndTime_parent object, and those objects |
| 755 | will be inherited automatically. The SpaceAndTime parameters are loaded first, |
| 756 | overridden by anything in the from_file, overridden by individual parameters. |
| 757 | |
| 758 | Args: |
| 759 | name (str): Name of Schema.TableName |
| 760 | from_file (Path): Path location of a saved file to load from. |
| 761 | default_user (SXTUser): User to use when no other user is specified. |
| 762 | private_key (str): Private key for the Resource (not user), in Base64, Hex, or Binary. |
| 763 | new_keypair (bool): If True, creates a new keypairs, overriding key_manager but not private_key (if set). |
| 764 | key_manager (SXTKeyManager): Key manager object |
| 765 | access_type (SXTTableAccessType): Access type of table, by enum (permissioned, public_read, etc.) |
| 766 | application_name (str): Name of the application, for logging and Space And Time query logging (if enabled). |
| 767 | start_time (datetime): Starting time of the process (for uniformity across objects). |
| 768 | default_local_folder (Path): default local path for saving / loading files. |
| 769 | logger (Logger): Python Logger object, with which to log all activity. |
| 770 | SpaceAndTime_parent (SpaceAndTime): parent SpaceAndTime class object to inherit default_user, key_manager, application_name, and logger. |
| 771 | """ |
| 772 | self.resource_type = SXTResourceType.TABLE |
| 773 | self.__foname__ = 'tables' |
| 774 | super().__init__(name, from_file, default_user, private_key, new_keypair, key_manager, application_name, start_time, default_local_folder, logger, SpaceAndTime_parent) |
| 775 | self.access_type = access_type |
| 776 | self.__allprops__.insert(2, 'access_type') |
| 777 | self.__with__= {"public_key":"{public_key}", "access_type":"{access_type}"} |
| 778 | self.insert = self.__ins__(self) |
| 779 | self.update = self.__upd__(self) |
| 780 | self.__existfunc__ = self.user.base_api.discovery_get_tables |
| 781 | |
| 782 | @property |
| 783 | def table_name(self) ->str: |
| 784 | return self.resource_name |
| 785 | @table_name.setter |
| 786 | def table_name(self, value): |
| 787 | self.resource_name = value |
| 788 | |
| 789 | |
| 790 | __cols__:dict = None |
| 791 | @property |
| 792 | def columns(self) -> dict: |
| 793 | if self.__cols__ is None: self.get_column_names() |
| 794 | return self.__cols__ |
| 795 | @columns.setter |
no outgoing calls