ProviderManager - Объект открытия/создания данных¶
-
class
axipy.da.
ProviderManager
¶ Класс открытия/создания объектов данных
DataProvider
.Примечание
Используйте готовый экземпляр этого класса
axipy.da.provider_manager
.Примечание
Для удобного задания параметров используйте экземпляры провайдеров:
tab
,shp
,csv
,mif
,excel
,sqlite
,postgre
,oracle
,mssql
,ogr
,svg
,gdal
,rest
,tms
,wms
,wmts
.Примечание
Открытые данные автоматически попадают в хранилище данных
axipy.da.DataManager
.Пример открытия локальной таблицы:
table = provider_manager.openfile('../path/to/datadir/table.tab')
Methods:
create
(definition)Создает и открывает данные из описания.
create_open
(definition)Создает и открывает данные из описания.
createfile
(filepath, schema, *args, **kwargs)Создает таблицу.
Возвращает список всех загруженных провайдеров данных.
open
(definition)Открывает данные по описанию.
open_hidden
(definition)Открывает данные по описанию.
openfile
(filepath, *args, **kwargs)Открывает данные из файла.
Возвращает список всех загруженных провайдеров данных.
query
(query_text, *tables)Выполняет SQL-запрос к перечисленным таблицам.
read_contents
(definition)Читает содержимое источника данных.
Attributes:
Файловый провайдер - Текст с разделителями.
Провайдер чтения файлов Excel.
Растровый провайдер GDAL.
Провайдер данных MIF-MID.
Провайдер для базы данных MSSQLServer.
Векторный провайдер OGR.
Провайдер для базы данных Oracle.
Провайдер для базы данных PostgreSQL.
Провайдер REST.
Векторный провайдер SHP.
Векторный провайдер sqlite.
Провайдер для SVG.
Провайдер MapInfo.
Тайловый провайдер.
Web Map Service.
Web Map Tile Service.
-
create
(definition)¶ Создает и открывает данные из описания.
- Параметры
definition (
dict
) – Описание объекта данных.
Псевдоним
create_open()
.- Тип результата
-
create_open
(definition)¶ Создает и открывает данные из описания.
- Возможные параметры:
src
- Строка, определяющая местоположение источника данных. Это может быть либо путь к файлу с расширением TAB, либо пустая строка (для таблицы, размещаемой в памяти).schema
- Схема таблицы. Задается массивом объектов, содержащих атрибуты.hidden
- Если указано True, то созданный объект не будет зарегистрирован в каталоге. См. такжеopen_hidden()
- Параметры
definition (
dict
) – Описание объекта данных.
Пример:
definition = { 'src': '../path/to/datadir/edit/table.tab', 'schema': attr.schema( attr.string('field1'), attr.integer('field2'), ), } table = provider_manager.create(definition)
- Тип результата
-
createfile
(filepath, schema, *args, **kwargs)¶ Создает таблицу.
create()
выполняет ту же функцию, но в более обобщенном виде.- Параметры
filepath (
str
) – Путь к создаваемой таблице.schema – Схема таблицы.
- Тип результата
-
property
csv
¶ Файловый провайдер - Текст с разделителями.
- Тип результата
-
property
excel
¶ Провайдер чтения файлов Excel.
- Тип результата
-
property
gdal
¶ Растровый провайдер GDAL.
- Тип результата
-
loaded_providers
()¶ Возвращает список всех загруженных провайдеров данных.
- Тип результата
- Результат
Провайдеры в виде пар
(Идентификатор : Описание)
.
-
property
mif
¶ Провайдер данных MIF-MID.
- Тип результата
-
property
mssql
¶ Провайдер для базы данных MSSQLServer.
- Тип результата
-
property
ogr
¶ Векторный провайдер OGR.
- Тип результата
-
open
(definition)¶ Открывает данные по описанию.
Формат описания объектов данных (набор и тип параметров) индивидуален для каждого провайдера данных, однако многие элементы используются для всех провайдеров данных. В нижеприведенной таблице можно определить какие параметр можно указывать при открытии того или иного источника. Т.е. допустимые параметры для конкретного провайдера указаны в соответствующем методе open для этого провайдера.
¶ Провайдер
Краткое описание
Ссылка
Провайдер MapInfo
Текст с разделителями
Векторный провайдер OGR
Провайдер чтения файлов Excel
Векторный провайдер SHP
Векторный провайдер sqlite
Провайдер для SVG
Растровый провайдер GDAL
Провайдер для базы данных PostgreSQL
Провайдер для базы данных Oracle
Провайдер для базы данных MSSQLServer
Провайдер REST
Тайловый провайдер
Web Map Service
Web Map Tile Service
Также существуют параметры, которые допустимы независимо от типа провайдера
¶ Параметр
Краткое описание
provider
Используемый провайдер. Допустимые значения можно получитьloaded_providers()
.Если не задан, то система пытается его определить самостоятельно.src
Ссылка на источник. Как правило, это имя файла.Для конкретного провайдера может дублироваться под другим именем.dataobject
Если источник содержит несколько таблиц, то имя конкретного указывается через данный параметр
alias
Псевдоним для открываемого источника данных.В системе открытыйобъект будет доступен по этому имени- Параметры
definition (
dict
) – Описание объекта данных.
Пример открытия файла (аналогичен
openfile()
):json = {'src':'../path/to/datadir/world.tab'} table_world = provider_manager.open(json)
или, что тоже самое:
json = {'filepath':'../path/to/datadir/world.tab'} table_world = provider_manager.open(json)
Пример открытия файла с несколькими таблицами:
# Пример открытия GPKG файла:: definition = { 'src': '../path/to/datadir/example.gpkg', 'dataobject': 'tablename' } table = provider_manager.open(definition)
Пример открытия таблицы базы данных:
definition = {"host": "localhost", "db": "sample", "user": "postgres", "password": "postgres", "dataobject": "public.world", "provider": "PgDataProvider"} table = provider_manager.open(definition)
- Тип результата
Открывает данные по описанию. Аналогична функции
open()
за исключением того, что когда данный объект добавляется в каталог, он не учитывается в общем списке и от него из этого каталога не приходят события.Примечание
См. также
open()
- Параметры
definition (
dict
) – Описание объекта данных.
Пример:
table = axipy.provider_manager.open_hidden({'src':'world.tab'}) print(len(axipy.data_manager), axipy.data_manager.exists(table)) axipy.data_manager.remove(table) >>> 0 True
- Тип результата
-
openfile
(filepath, *args, **kwargs)¶ Открывает данные из файла.
- Параметры
Пример:
table = provider_manager.openfile('../path/to/datadir/example.gpkg')
- Тип результата
-
property
oracle
¶ Провайдер для базы данных Oracle.
- Тип результата
-
property
postgre
¶ Провайдер для базы данных PostgreSQL.
- Тип результата
-
providers
()¶ Возвращает список всех загруженных провайдеров данных.
- Тип результата
- Результат
Список провайдеров.
-
query
(query_text, *tables)¶ Выполняет SQL-запрос к перечисленным таблицам.
Предупреждение
Используйте
axipy.da.DataManager.query()
.- Параметры
query_text (
str
) – Текст запроса.*tables – Список таблиц, к которым выполняется запрос.
- Тип результата
- Результат
Таблица, если результатом запроса является таблица.
Пример:
query_text = "SELECT * FROM world, caps WHERE world.capital = caps.capital" joined = provider_manager.query(query_text, world, caps)
-
read_contents
(definition)¶ Читает содержимое источника данных.
Обычно используется для источников, способных содержать несколько объектов данных.
- Параметры
- Тип результата
- Результат
Имена объектов данных.
Пример:
contents = axipy.provider_manager.read_contents('../path/to/datadir/example.gpkg') print(contents) >>> ['world', 'worldcap'] world = axipy.provider_manager.openfile('../path/to/datadir/example.gpkg', dataobject='world')
-
property
rest
¶ Провайдер REST.
- Тип результата
-
property
shp
¶ Векторный провайдер SHP.
- Тип результата
-
property
sqlite
¶ Векторный провайдер sqlite.
- Тип результата
-
property
svg
¶ Провайдер для SVG.
- Тип результата
-
property
tab
¶ Провайдер MapInfo.
- Тип результата
-
property
tms
¶ Тайловый провайдер.
- Тип результата
-
property
wms
¶ Web Map Service.
- Тип результата
-
property
wmts
¶ Web Map Tile Service.
- Тип результата
-