Table - Таблица

class axipy.da.Table

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

Таблица.

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

Пример:

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

См.также

commit(), DataObject.close().

property can_redo

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

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

bool

property can_undo

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

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

bool

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

insert(features)

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

Параметры

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

property is_editable

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

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

bool

property is_modified

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

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

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['Страна'] )
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['Страна']))
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.