ProviderManager - Объект открытия/создания данных
- class axipy.ProviderManager
Класс открытия/создания объектов данных
DataProvider
.Примечание
Создание
axipy.ProviderManager
не требуется, используйте объектaxipy.provider_manager
.Примечание
Для удобного задания параметров используйте экземпляры провайдеров:
tab
,shp
,csv
,mif
,excel
,sqlite
,postgre
,oracle
,mssql
,ogr
,svg
,gdal
,rest
,tms
,wms
,wmts
,dwg
,panorama
.Примечание
Открытые данные автоматически попадают в хранилище данных
axipy.DataManager
.Пример открытия локальной таблицы:
table = provider_manager.openfile('../path/to/datadir/table.tab')
Свойства:
Файловый провайдер - Текст с разделителями.
Провайдер данных AutoCAD.
Провайдер чтения файлов Excel.
Растровый провайдер GDAL.
Провайдер данных MIF-MID.
Провайдер для базы данных MSSQLServer.
Векторный провайдер OGR.
Провайдер для базы данных Oracle.
Провайдер данных ГИС Панорама.
Провайдер для базы данных PostgreSQL.
Провайдер REST.
Векторный провайдер SHP.
Векторный провайдер sqlite.
Провайдер для SVG.
Провайдер MapInfo.
Тайловый провайдер.
Web Map Service.
Web Map Tile Service.
Методы:
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)Читает содержимое источника данных.
- create(definition: dict) DataObject
Создает и открывает данные из описания.
- Параметры:
definition – Описание объекта данных.
Псевдоним
create_open()
.
- create_open(definition: dict) DataObject
Создает и открывает данные из описания.
- Возможные параметры:
src
- Строка, определяющая местоположение источника данных. Это может быть либо путь к файлу с расширением TAB, либо пустая строка (для таблицы, размещаемой в памяти).schema
- Схема таблицы. Задается массивом объектов, содержащих атрибуты.hidden
- Если указано True, то созданный объект не будет зарегистрирован в каталоге. См. такжеopen_hidden()
override
- Если указано True, то при наличии файла в файловой системе, он перезаписывается. В противном случае вызывается исключение.
- Параметры:
definition – Описание объекта данных.
Пример:
definition = { 'src': '../path/to/datadir/edit/table.tab', 'schema': attr.schema( attr.string('field1'), attr.integer('field2'), ), } table = provider_manager.create(definition)
- createfile(filepath: str, schema, *args, **kwargs) DataObject
Создает таблицу.
create()
выполняет ту же функцию, но в более обобщенном виде.- Параметры:
filepath – Путь к создаваемой таблице.
schema – Схема таблицы.
- property csv: CsvDataProvider
Файловый провайдер - Текст с разделителями.
- property dwg: DwgDataProvider
Провайдер данных AutoCAD.
- property excel: ExcelDataProvider
Провайдер чтения файлов Excel.
- property gdal: GdalDataProvider
Растровый провайдер GDAL.
- loaded_providers() dict
Возвращает список всех загруженных провайдеров данных.
- Результат:
Провайдеры в виде пар
(Идентификатор : Описание)
.
- property mif: MifMidDataProvider
Провайдер данных MIF-MID.
- property mssql: MsSqlDataProvider
Провайдер для базы данных MSSQLServer.
- property ogr: OgrDataProvider
Векторный провайдер OGR.
- open(definition: dict) DataObject
Открывает данные по описанию.
Формат описания объектов данных (набор и тип параметров) индивидуален для каждого провайдера данных, однако многие элементы используются для всех провайдеров данных. В нижеприведенной таблице можно определить какие параметр можно указывать при открытии того или иного источника. Т.е. допустимые параметры для конкретного провайдера указаны в соответствующем методе open для этого провайдера.
Провайдер
Краткое описание
Ссылка
Провайдер MapInfo
Текст с разделителями
Векторный провайдер OGR
Провайдер чтения файлов Excel
Векторный провайдер SHP
Векторный провайдер sqlite
Провайдер для SVG
Растровый провайдер GDAL
Провайдер для базы данных PostgreSQL
Провайдер для базы данных Oracle
Провайдер для базы данных MSSQLServer
Провайдер REST
Тайловый провайдер
Web Map Service
Web Map Tile Service
Провайдер файлов AutoCAD
Провайдер файлов ГИС Панорама
Также существуют параметры, которые допустимы независимо от типа провайдера
Параметр
Краткое описание
provider
Используемый провайдер. Допустимые значения можно получитьloaded_providers()
.Если не задан, то система пытается его определить самостоятельно.src
Ссылка на источник. Как правило, это имя файла.Для конкретного провайдера может дублироваться под другим именем.dataobject
Если источник содержит несколько таблиц, то имя конкретного указывается через данный параметр
alias
Псевдоним для открываемого источника данных.В системе открытыйобъект будет доступен по этому имени- Параметры:
definition – Описание объекта данных.
Пример открытия файла (аналогичен
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 – Описание объекта данных.
Пример:
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: Union[str, Path], *args, **kwargs) DataObject
Открывает данные из файла.
- Параметры:
filepath – Путь к открываемому файлу.
**kwargs – Именованные аргументы. Возможные варианты от провайдера. Подробнее см.
open()
Пример:
table = provider_manager.openfile('../path/to/datadir/example.gpkg')
- property oracle: OracleDataProvider
Провайдер для базы данных Oracle.
- property panorama: PanoramaDataProvider
Провайдер данных ГИС Панорама.
- property postgre: PostgreDataProvider
Провайдер для базы данных PostgreSQL.
- providers() List[DataProvider]
Возвращает список всех загруженных провайдеров данных.
- Результат:
Список провайдеров.
- query(query_text: str, *tables) Table
Выполняет SQL-запрос к перечисленным таблицам.
Предупреждение
Используйте
axipy.DataManager.query()
.- Параметры:
query_text – Текст запроса.
*tables – Список таблиц, к которым выполняется запрос.
- Результат:
Таблица, если результатом запроса является таблица.
Пример:
query_text = "SELECT * FROM world, caps WHERE world.capital = caps.capital" joined = provider_manager.query(query_text, world, caps)
- read_contents(definition: Union[dict, str]) List[str]
Читает содержимое источника данных.
Обычно используется для источников, способных содержать несколько объектов данных.
- Параметры:
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: RestDataProvider
Провайдер REST.
- property shp: ShapeDataProvider
Векторный провайдер SHP.
- property sqlite: SqliteDataProvider
Векторный провайдер sqlite.
- property svg: SvgDataProvider
Провайдер для SVG.
- property tab: TabDataProvider
Провайдер MapInfo.
- property tms: TmsDataProvider
Тайловый провайдер.
- property wms: WmsDataProvider
Web Map Service.
- property wmts: WmtsDataProvider
Web Map Tile Service.