Table - Таблица

class axipy.da.Table

Базовые классы: axipy.da.DataObject

Таблица.

Менеджер контекста сохраняет изменения и закрывает таблицу.

Пример:

with provider_manager.openfile('path/to/file.tab') as table:
    ...
    # При выходе из блока таблица будет сохранена и закрыта

См.также

commit(), DataObject.close().

Attributes:

can_redo

Возможен ли откат на один шаг вперед.

can_undo

Возможен ли откат на один шаг назад.

coordsystem

Система координат таблицы.

data_changed

Сигнал об изменении данных таблицы.

destroyed

Сигнал оповещения об удалении объекта.

is_editable

Признак того, что таблица является редактируемой.

is_modified

Таблица содержит несохраненные изменения.

is_spatial

Признак того, что объект данных является пространственным.

is_temporary

Признак того, что таблица является временной.

name

Название объекта данных.

properties

Дополнительные свойства объекта данных.

provider

Провайдер изначального источника данных.

schema

Возвращает схему таблицы.

schema_changed

Сигнал об изменении схемы таблицы.

supported_operations

Доступные операции.

Methods:

close()

Пытается закрыть таблицу.

commit()

Сохраняет изменения в таблице.

count([bbox])

Возвращает количество записей, удовлетворяющих параметрам.

insert(features)

Вставляет записи в таблицу.

items([bbox, ids])

Запрашивает записи, удовлетворяющие параметрам.

itemsByIds(ids)

Запрашивает записи по списку list с идентификаторами записей, либо перечень идентификаторов в виде списка.

itemsInObject(obj)

Запрашивает записи с фильтром по геометрическому объекту.

itemsInRect(bbox)

Запрашивает записи с фильтром по ограничивающему прямоугольнику.

redo()

Производит откат на один шаг вперед.

remove(ids)

Удаляет записи из таблицы.

restore()

Отменяет несохраненные изменения в таблице.

undo()

Производит откат на один шаг назад.

update(features)

Обновляет записи в таблице.

property can_redo

Возможен ли откат на один шаг вперед.

Тип результата

bool

property can_undo

Возможен ли откат на один шаг назад.

Тип результата

bool

close()

Пытается закрыть таблицу.

Исключение

RuntimeError – Ошибка закрытия таблицы.

Примечание

Объект данных не всегда может быть сразу закрыт. Например, для таблиц используется транзакционная модель редактирования и перед закрытием необходимо сохранить или отменить изменения, если они есть. См. Table.is_modified.

commit()

Сохраняет изменения в таблице.

Если таблица не содержит несохраненные изменения, то команда игнорируется.

Исключение

RuntimeError – Невозможно сохранить изменения.

property coordsystem

Система координат таблицы.

Тип результата

Optional[CoordSystem]

count(bbox=None)

Возвращает количество записей, удовлетворяющих параметрам.

Данный метод является наиболее предпочтительным для оценки количества записей. При этом используется наиболее оптимальный вариант выполнения запроса для каждого конкретного провайдера данных.

Параметры

bbox (Union[Rect, QRectF, tuple, None]) – Ограничивающий прямоугольник.

Тип результата

int

Результат

Количество записей.

property data_changed

Сигнал об изменении данных таблицы. Испускается когда были изменены данные таблицы.

Пример подписки на изменение таблицы.
table = provider_manager.openfile(filepath)
table.data_changed.connect(lambda : print('Таблица была изменена.'))
Тип результата

Signal

property destroyed

Сигнал оповещения об удалении объекта.

Тип результата

Signal

insert(features)

Вставляет записи в таблицу.

Параметры

features (Union[Iterator[Feature], Feature]) – Записи для вставки.

property is_editable

Признак того, что таблица является редактируемой.

Тип результата

bool

property is_modified

Таблица содержит несохраненные изменения.

Тип результата

bool

property is_spatial

Признак того, что объект данных является пространственным.

Тип результата

bool

property is_temporary

Признак того, что таблица является временной.

Тип результата

bool

items(bbox=None, ids=None)

Запрашивает записи, удовлетворяющие параметрам. В качестве фильтра может быть указан либо ограничивающий прямоугольник, либо перечень идентификаторов в виде списка.

Параметры
Тип результата

Iterator[Feature]

Результат

Итератор по записям.

itemsByIds(ids)

Запрашивает записи по списку list с идентификаторами записей, либо перечень идентификаторов в виде списка. Идентификаторы несохраненных записей имеют отрицательные значения.

Параметры

ids (List[int]) – Список идентификаторов.

Тип результата

Iterator[Feature]

Результат

Итератор по записям.

Пример
table_world = provider_manager.openfile(filepath)
# Пример запроса по списку идентификаторов.
items = table_world.itemsByIds([11,27,41,163,203])
for f in items:
    print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
# Просмотр идентификаторов всех записей, включая несохраненные
for f in  table_world.items():
    print( f.id, f['Страна'] )
# Получение несохраненных записей совместно с сохраненными
items_new = table_world.itemsByIds([-1,-12,27])
for f in items_new:
    print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
itemsInObject(obj)

Запрашивает записи с фильтром по геометрическому объекту.

Параметры

obj (Geometry) – Геометрия. Если для нее не задана СК, используется СК таблицы.

Тип результата

Iterator[Feature]

Результат

Итератор по записям.

Пример запроса по полигону
table_world = provider_manager.openfile(filepath)
v = 2000000
polygon = Polygon((-v, -v), (-v, v), (v, v), (v, -v))
items = table_world.itemsInObject(polygon)
for f in items:
    print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
itemsInRect(bbox)

Запрашивает записи с фильтром по ограничивающему прямоугольнику.

Параметры

bbox (Union[Rect, QRectF, tuple]) – Ограничивающий прямоугольник.

Тип результата

Iterator[Feature]

Результат

Итератор по записям.

Пример запроса (таблица в проекции Робинсона)
table_world = provider_manager.openfile(filepath)
v = 2000000
items = table_world.itemsInRect(Rect(-v, -v, v, v))
for f in items:
    print('Feature id={}. Страна={}'.format(f.id, f['Страна']))
property name

Название объекта данных.

Тип результата

str

property properties

Дополнительные свойства объекта данных.

Тип результата

dict

property provider

Провайдер изначального источника данных.

Тип результата

str

redo()

Производит откат на один шаг вперед. При этом возвращается состояние до последней отмены.

remove(ids)

Удаляет записи из таблицы.

Параметры

ids (Union[int, Iterator[int]]) – Идентификаторы записей для удаления.

restore()

Отменяет несохраненные изменения в таблице.

Если таблица не содержит несохраненные изменения, то команда игнорируется.

property schema

Возвращает схему таблицы.

Тип результата

Schema

property schema_changed

Сигнал об изменении схемы таблицы. Испускается когда была изменена структура таблицы.

Тип результата

Signal

property supported_operations

Доступные операции.

Пример использования
flags = table.supported_operations
assert flags == SupportedOperations.ReadWrite
assert flags & SupportedOperations.Insert
assert SupportedOperations.Write in flags
Тип результата

SupportedOperations

undo()

Производит откат на один шаг назад.

update(features)

Обновляет записи в таблице.

Параметры

features (Union[Iterator[Feature], Feature]) – Записи для обновления.

При обновлении проверяется Feature.id. Если запись с таким идентификатором не найдена, то она пропускается.

Пример использования
modified_feature = Feature({'attr_name': 'new_value'}, id=1)
table.update(modified_feature)
table.commit()

См.также

Feature.id, commit(), is_modified.