Объекты данных

Разные типы данных обобщены одним абстрактным типом axipy.da.DataObject. Он образует иерархию объектов данных различного типа: таблица, растр, грид, чертеж, панорама, и так далее.

Провайдеры данных

За каждый тип данных отвечает провайдер данных axipy.da.ProviderManager. Провайдер владеет информацией о том, как представлять конкретный тип объектов данных и как ими манипулировать. Класс axipy.da.ProviderManager содержит все зарегистрированные провайдеры данных.

Каждый провайдер имеет свои особенности и возможности, но общие концепции, такие как открытие и создание, выделены в общий интерфейс axipy.da.DataProvider. В то же время конкретный провайдер может иметь дополнительные функции и параметры, свойственные только ему.

Для получения списка загруженных провайдеров есть функция axipy.da.ProviderManager.loaded_providers().

Например:

provider_manager.loaded_providers()
{'CsvDataProvider': 'Файловый провайдер: Текст с разделителями',
  'DwgDgnFileProvider': 'Провайдер DWG и DGN',
  'GdalDataProvider': 'Растровый провайдер GDAL',
  'MifMidDataProvider': 'Провайдер данных MIF-MID',
  'OgrDataProvider': 'Векторный провайдер OGR',
  'ShapeDataProvider': 'Shapefile',
  'PgDataProvider': 'PostgreSQL',
  'OracleDataProvider': 'oracle',
  'MsSqlDataProvider': 'MS SQL Server',
  'RestDataProvider': 'ArcGIS REST',
  'SqliteDataProvider': 'Векторный провайдер sqlite',
  'TabDataProvider': 'MapInfo',
  'TmsDataProvider': 'Тайловые сервисы',
  'WfsDataProvider': 'Web Feature Service',
  'WmsDataProvider': 'Web Map Service',
  'WmtsDataProvider': 'Web Map Tile Service',
  'XlsDataProvider': 'Провайдер чтения файлов Excel'}

Для открытия разных источников данных может потребоваться разная информация. Например, для подключения к базе данных нужно указать имя пользователя и пароль и прочее. Поэтому для большинства провайдеров данных определены функции задания источников данных axipy.da.DataProvider.get_source() с дополнительными параметрами. Например, axipy.da.CsvDataProvider.get_source(), axipy.da.PostgreDataProvider.get_source() и другие.

Например:

source = provider_manager.csv.get_source('path/to/mydata.csv', delimiter=';')
table = source.open()

Что эквивалентно:

table = provider_manager.csv.open('path/to/mydata.csv', delimiter=';')

Или:

table = provider_manager.openfile('path/to/mydata.csv', delimiter=';')

См.также

Подробнее в документации axipy.da.ProviderManager.