Schema - Схема таблицы

class axipy.Schema

Базовые классы: list

Схема таблицы. Представляет собой список атрибутов axipy.Attribute. Организован в виде list и свойством coordsystem. При задании coordsystem создается геометрический атрибут.

Параметры:
  • *attributes – Атрибуты.

  • coordsystem – Система координат для геометрического атрибута. Может быть задана или в виде строки (подробнее axipy.cs.CoordSystem.from_string()) или как объект СК axipy.cs.CoordSystem.

Пример создания
# Определяем схему таблицы
schema = Schema(
    Attribute.string('one', 25),
    Attribute.integer('two'),
    Attribute.decimal('three'),
    coordsystem='prj:Earth Projection 12, 62, "m", 0'
)
# На базе этой схемы можно создать таблицу
definition = {
    'src': '',
    'schema': schema
}
table = provider_manager.create(definition)
Пример создания из списка
attrs = [Attribute.string('one', 25), Attribute.integer(
    'two'), Attribute.decimal('three')]
# распаковывается список атрибутов
schema = Schema(*attrs, coordsystem='prj:Earth Projection 12, 62, "m", 0')

Имеет стандартные функции работы со списком.

Пример операций
# Вставка атрибута на 2 позицию
schema.insert(2, Attribute.string('attr_name'))
# Количество атрибутов
count = len(schema)
# Получение атрибута по индексу
attribute = schema[2]
# Получение атрибута по имени
attribute = schema['attr_name']
# Изменение атрибута по индексу
schema[2] = Attribute.string('attr', 30)
# Изменение атрибута по имени
schema['name_attribute'] = Attribute.string('attr', 30)
# Удаление атрибута по его индексу
del schema[2]
# Аналогичная команда удаления атрибута
schema.delete(2)
# Удаление атрибута по имени
schema.delete('Население')
# Добавление атрибута в конец
schema.append(Attribute.string('new_attr'))
# Вставка по индексу
schema.insert(2, Attribute.integer('num_attr'))
# Поиск атрибута по имени
index = schema.index('new_attr')
# проверяет существование
exists = 'new_attr' in schema
# Удаление по имени
schema.remove('new_attr')
# Получение атрибута по его имени
a = schema.by_name('attr')

См.также

Изменение структуры существующей таблицы см. Table.schema

Конструктор класса:

__init__(*attributes[, coordsystem])

Свойства:

attribute_names

Возвращает список имен атрибутов.

coordsystem

Система координат.

Методы:

by_name(n)

Возвращает атрибут по его имени.

delete(index)

Удаляет атрибут.

index_by_name(n)

Возвращает индекс по имени атрибута

insert(index, attr)

Вставляет атрибут.

__init__(*attributes: Attribute, coordsystem: Optional[Union[str, CoordSystem]] = None)
property attribute_names: List[str]

Возвращает список имен атрибутов.

by_name(n: str) Attribute

Возвращает атрибут по его имени. Если такого имени не существует, возвращает None.

Параметры:

n – Наименование атрибута.

property coordsystem: Optional[CoordSystem]

Система координат.

Результат:

None, если СК отсутствует.

См.также

axipy.Table.is_spatial

Пример использования
if schema.coordsystem is not None:  # проверяет существование
    pass
crs_string = schema.coordsystem  # получает
schema.coordsystem = 'epsg:4326'  # изменяет
schema.coordsystem = None  # удаляет
delete(index: Union[int, str])

Удаляет атрибут.

Параметры:

index – Индекс удаляемого атрибута.

index_by_name(n: str) int

Возвращает индекс по имени атрибута

Параметры:

n – Наименование атрибута.

insert(index: int, attr: Attribute)

Вставляет атрибут.

Параметры:
  • index – Индекс, по которому производится вставка.

  • attr – Атрибут.