DataManager - Каталог данных¶
-
class
axipy.da.
DataManager
¶ Хранилище объектов данных. При открытии таблицы или растра эти объекты автоматически попадают в данный каталог. Для отслеживания изменений в каталоге используются события
added
иremoved
.Если же разработка ведется не в рамках приложения и ядро инициализировано явно посредством
axipy.init_axioma()
, то объект в каталог надо добавлять явноDataManager.add()
Примечание
Используйте готовый экземпляр этого класса
axipy.da.data_manager
.# Отслеживание добавления или удаления в каталоге. data_manager.added[str].connect(lambda n: print(f'Таблица "{n}" добавлена в каталог')) data_manager.removed[str].connect(lambda n: print(f'Таблица "{n}" удалена из каталога')) # Открываем таблицу table = provider_manager.openfile(filepath) # Список объектов каталога for t in data_manager: print(t.name) # Доступ по имени 'world' in data_manager try: found_table = data_manager['world'] except KeyError: pass # Закрываем таблицу table.close() # Убираем отслеживание data_manager.added[str].disconnect() data_manager.removed[str].disconnect() ''' Таблица "world" добавлена в каталог world Таблица "world" удалена из каталога '''
Methods:
add
(data_object)Добавляет объект данных в хранилище.
exists
(obj)Проверяет присутствует ли объект в каталоге.
find
(name)Производит поиск объект данных по имени.
query
(query_text[, dialect])Выполняет SQL-запрос к перечисленным таблицам.
query_hidden
(query_text[, dialect])Выполняет SQL-запрос к таблицам.
remove
(data_object)Удаляет объект данных.
Удаляет все объекты данных.
Attributes:
Signal[str]
Сигнал о добавлении объекта.Список всех объектов, включая скрытые.
Количество объектов данных.
Список объектов.
Signal[str]
Сигнал об удалении объекта.Таблица выборки, если она существует.
Тип используемого диалекта по умолчанию для выполнения SQL-предложений.
Список таблиц.
Signal[]
Сигнал об изменении количества объектов.-
add
(data_object)¶ Добавляет объект данных в хранилище.
- Параметры
data_object (
DataObject
) – Объект данных для добавления.
-
property
added
¶ Signal[str]
Сигнал о добавлении объекта. В качестве параметра передается наименование таблицы.- Тип результата
Signal
-
property
all_objects
¶ Список всех объектов, включая скрытые.
- Тип результата
-
exists
(obj)¶ Проверяет присутствует ли объект в каталоге. Проверяет так-же и скрытые объекты, которые отсутствуют в общем списке.
- Параметры
obj (
DataObject
) – проверяемый объект данных.- Тип результата
-
find
(name)¶ Производит поиск объект данных по имени.
- Параметры
name (
str
) – Имя объекта данных.- Тип результата
- Результат
Искомый объект данных или None.
-
property
objects
¶ Список объектов.
- Тип результата
-
query
(query_text, dialect=None)¶ Выполняет SQL-запрос к перечисленным таблицам.
- Параметры
query_text (
str
) – Текст запроса.dialect (
Union
[TypeSqlDialect
,str
,None
]) – Диалект, который используется при выполнении запроса. Значение по умолчанию установлено как значение свойстваsql_dialect
.
- Тип результата
- Результат
Таблица, если результатом запроса является таблица.
- Исключение
RuntimeError – При возникновении ошибки.
filepath = 'path/to/world.tab' # Открываем таблицу table = provider_manager.openfile(filepath) # Выполняем запрос qry = data_manager.query('select * from world1 where Страна like "А%"') # Выполняем тот-же запрос, но с явным указанием диалекта qry = data_manager.query('select * from world1 where Страна like "А%"', TypeSqlDialect.axioma)
filepath = 'path/to/world.tab' # Открываем таблицу table = provider_manager.openfile(filepath) # Добавляем таблицу в каталог data_manager.add(table) # Выполняем запрос qry = data_manager.query('select * from world1 where Страна like "А%"') # Выполняем тот-же запрос, но с явным указанием диалекта qry = data_manager.query('select * from world1 where Страна like "А%"', TypeSqlDialect.axioma) # Если запрос qry будет использоваться при создании нового запроса, то его по аналогии тоже # нужно добавить в каталог data_manager.add(qry) # Удаление из каталога data_manager.remove(qry) data_manager.remove(table)
Выполняет SQL-запрос к таблицам. В отличие от
query()
результирующий объектTable
добавляется в каталог как скрытый объект. Он не учитывается в общем списке и от него из этого каталога не приходят события.- Параметры
query_text (
str
) – Текст запроса.dialect (
Union
[TypeSqlDialect
,str
,None
]) – Диалект, который используется при выполнении запроса. Значение по умолчанию установлено какsql_dialect
.
- Тип результата
- Результат
Таблица, если результатом запроса является таблица.
-
remove
(data_object)¶ Удаляет объект данных.
Объект данных при этом закрывается.
- Параметры
data_object (
DataObject
) – Объект данных для удаления.
-
remove_all
()¶ Удаляет все объекты данных.
-
property
removed
¶ Signal[str]
Сигнал об удалении объекта.- Тип результата
Signal
-
property
selection
¶ Таблица выборки, если она существует.
См.также
- Тип результата
-
property
sql_dialect
¶ Тип используемого диалекта по умолчанию для выполнения SQL-предложений. Если необходимо переопределить, то для конкретного sql предложения необходимо указывать диалект явно
query()
- Тип результата
- Результат
Тип диалекта. Возможные значения TypeSqlDialect.axioma или TypeSqlDialect.sqlite.
-
property
updated
¶ Signal[]
Сигнал об изменении количества объектов.- Тип результата
Signal
-