Destination - Назначение объекта данных

class axipy.Destination

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

Используется для создания данных или для указания назначения при конвертации.

Пример открытия и конвертации
file_in = 'world.tab'
file_out = 'world.mif'
source = provider_manager.tab.get_source(file_in).open()
destination = provider_manager.mif.get_destination(file_out, source.schema)
destination.export(source.items())

Примечание

Не все провайдеры поддерживают создание и конвертацию. См. описание конкретного провайдера данных.

См.также

Импорт/Экспорт

См.также

Source

Методы:

create_open()

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

export(features[, func_callback])

Создает объект данных и экспортирует в него записи.

export_from(source[, copy_schema])

Создает объект данных и экспортирует в него записи из источника данных.

export_from_table(table[, copy_schema, ...])

Создает объект данных и экспортирует в него записи из таблицы.

create_open() DataObject

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

export(features: Iterator[Feature], func_callback: Optional[Callable[[Feature, int], Union[None, bool]]] = None)

Создает объект данных и экспортирует в него записи.

Параметры:
  • features – Записи.

  • func_callback

    Функция, которая будет вызываться после экспорта каждой записи. В определении должны быть параметры следующих типов:

    • feature Feature - текущая запись

    • row int - порядковый номер

    Возможно прерывание процесса экспорта, для этого нужно вернуть False в func_callback.

Пример экспорта данных
# Определяем схему будущей таблицы
schema = Schema(Attribute.string('name', 30), coordsystem="prj:1,104")
# Формируем данные для вставки. В нашем случае одна точка
features = [Feature(name='hello', geometry=Point(10, 10))]
# Имя выходного файла
filepath = './path/to/world_out.tab'
# Создаем таблицу по определенной ранее информации
dest = provider_manager.tab.get_destination(filepath, schema)
# Производим экспорт
dest.export(features)
export_from(source: Source, copy_schema: bool = False)

Создает объект данных и экспортирует в него записи из источника данных.

Параметры:
  • source – Источник данных.

  • copy_schema – Копировать схему источника без изменений.

export_from_table(table: Table, copy_schema: bool = False, func_callback: Optional[Callable[[Feature, int], Union[None, bool]]] = None)

Создает объект данных и экспортирует в него записи из таблицы.

Параметры:
  • table – Таблица.

  • copy_schema – Копировать схему источника без изменений.

  • func_callback

    Функция, которая будет вызываться после экспорта каждой записи. В определении должны быть параметры следующих типов:

    • feature Feature - текущая запись

    • row int - порядковый номер

    Возможно прерывание процесса экспорта, для этого нужно вернуть False в func_callback.

Пример экспорта таблицы с прогрессом
# Определяем функцию прогресса
def func(feature: Feature, row: int) -> Union[None, bool]:
    # Экспорт первых 10 записей, затем процесс прерывается
    if row == 10:
        return False  # Прерывание процесса
    print(f'>> feature.id={feature.id} row={row}')

# Открываем исходную таблицу
table_src = provider_manager.openfile(input_filepath)
# Формируем целевую и производим экспорт
destination = provider_manager.tab.get_destination(output_filepath, Schema())
destination.export_from_table(table_src, copy_schema=True, func_callback=func)
Пример экспорта таблицы в формат CSV
# Открываем исходную таблицу
table_src = provider_manager.openfile(input_filepath)
# Формируем целевую и производим экспорт
destination = provider_manager.csv.get_destination(output_filepath, Schema())
destination.export_from_table(table_src, copy_schema=True)