def read_terms(self, parameters: 'Union[TermParameters, str, Tuple[str, int]]') \ -> 'List[TermInfo]': """ Получение термов поискового словаря. :param parameters: Параметры термов или терм или кортеж "терм, количество" :return: Список термов """ if not self.check_connection(): return [] if isinstance(parameters, tuple): parameters2 = TermParameters(parameters[0]) parameters2.number = parameters[1] parameters = parameters2 if isinstance(parameters, str): parameters = TermParameters(parameters) parameters.number = 10 assert isinstance(parameters, TermParameters) command = READ_TERMS_REVERSE if parameters.reverse else READ_TERMS query = DatabaseQuery(self, command, parameters.database) query.utf(parameters.start) query.add(parameters.number) query.ansi(parameters.format) with self.execute(query) as response: response.check_return_code(READ_TERMS_CODES) lines = response.utf_remaining_lines() result = TermInfo.parse(lines) return result
def create_database(self, database: 'Optional[str]' = None, description: 'Optional[str]' = None, reader_access: bool = True) -> bool: """ Создание базы данных. :param database: Имя создаваемой базы. :param description: Описание в свободной форме. :param reader_access: Читатель будет иметь доступ? :return: Признак успешности операции. """ if not self.check_connection(): return False description = description or '' assert isinstance(description, str) query = DatabaseQuery(self, CREATE_DATABASE, database) query.ansi(description).add(int(reader_access)) return self._execute_with_bool_result(query)
def print_table(self, definition: TableDefinition) -> str: """ Расформатирование таблицы. :param definition: Определение таблицы :return: Результат расформатирования """ if not self.check_connection(): return '' query = DatabaseQuery(self, PRINT, definition.database) query.ansi(definition.table) query.ansi('') # instead of the headers query.ansi(definition.mode).utf(definition.search) query.add(definition.min_mfn).add(definition.max_mfn) query.utf(definition.sequential) query.ansi('') # instead of the MFN list with self.execute(query) as response: result = response.utf_remaining_text() return result