История изменений

8.0 Изменения

Ноябрь 2026

Переход на PySide6

Главное изменение версии 8.0 — появление в Python API модуля PySide6, повторяющего API Qt6. Основная поставка ГИС Аксиома 8.0 по-прежнему работает на Qt5 (PySide2): модуль PySide6 в ней является слоем совместимости поверх PySide2. Это сделано в рамках подготовки к переходу приложения на Qt6: код плагинов и скриптов, написанный в терминах PySide6, будет работать без изменений и в сборке на Qt6.

  • Пишите новый код в терминах PySide6 (from PySide6 import QtWidgets и т. п.), используя синтаксис API Qt6: квалифицированные имена перечислений (например, Qt.MouseButton.LeftButton вместо Qt.LeftButton) и exec() вместо exec_().

  • Обратная совместимость сохраняется: импорты PySide2 продолжают работать в текущей версии на Qt5 и останутся работать в последующих версиях. Для сборки на Qt6 подготовлен аналогичный слой совместимости, повторяющий API PySide2, поэтому в большинстве случаев существующий код не потребует доработки при смене сборки.

  • Тестовая сборка ГИС Аксиома на Qt6 (со стандартным модулем PySide6) доступна отдельно от основной поставки.

  • Подробнее о переносе кода с PySide2 на PySide6 можно прочитать по ссылке: https://doc.qt.io/qtforpython-6/faq/porting_from2.html#faq-porting-from2.

Новое

  • В axipy.DataObject.close() добавлен параметр wait — управление ожиданием полного закрытия объекта данных и освобождения связанных с ним ресурсов. Добавлено исключение axipy.DataObject.CloseTimeout — вызывается из axipy.DataObject.close(), если объект не был полностью закрыт в отведенное время (1 минута). Параметр wait также добавлен в методы axipy.DataManager.remove() и axipy.DataManager.remove_all().

  • В axipy.Map.to_image() добавлен параметр fill_color — цвет, которым производится первоначальная очистка растра.

  • Свойство axipy.LegendItem.style стало доступно на запись.

  • Добавлен метод axipy.Schema.copy — получение копии схемы таблицы.

  • В axipy.execfile() добавлена возможность передачи аргументов запускаемому скрипту (доступны внутри скрипта через sys.argv).

  • Функция axipy.run_in_gui() переработана: если во время выполнения переданной функции возникает исключение, оно повторно выбрасываются с сохранением исходного стека вызовов.

Исправления

  • Задокументировано поведение метода axipy.Geometry.normalize(): в случае ошибки метод возвращает None.

  • При добавлении слоя на карту проверка на дубликат выполняется по имени слоя; в сообщении об ошибке указывается имя слоя.

7.1 Изменения

Октябрь 2025

Новое

7.0 Изменения

Июнь 2025

Новое

Исправления

  • Свойство axipy.MainWindow.catalog объявлено устаревшим; используйте готовый экземпляр axipy.data_manager.

  • Метод axipy.ProviderManager.query() объявлен устаревшим; используйте метод axipy.DataManager.query().

  • Класс axipy.Type объявлен устаревшим и был переименован в axipy.GeometryType.

6.2 Изменения

Январь 2025

Новое

6.1 Изменения

Октябрь 2024

Новое

Исправления

6.0 Изменения

Июнь 2024

Новое

  • Новые классы для работы с длительными задачами: axipy.Task, axipy.DialogTask вместо устаревших классов axipy.AxipyTask, axipy.AxipyAnyCallableTask, axipy.AxipyProgressHandler, axipy.ProgressGuiFlags, axipy.ProgressSpecification.

  • Класс axipy.TaskManager был дополнен как словарь только для чтения (typing.Mapping). Добавлены сигналы axipy.TaskManager.added и axipy.TaskManager.removed. Методы axipy.TaskManager.start_task(), axipy.TaskManager.run_and_get(), axipy.TaskManager.run_in_gui(), axipy.TaskManager.generate_dialog_for_task() были объявлены устаревшими.

  • Класс axipy.PluginManager - Менеджер плагинов.

  • Функция axipy.save_file_dialog() - Диалог сохранения файла, по аналогии с axipy.open_file_dialog().

Исправления

  • Экземпляры классов менеджеров были приведены к одному виду и оформлены в разделе Менеджеры. Классы:

    были дополнены как экземпляры. (Раньше были исключительно статическими классами.)

5.2 Изменения

Февраль 2024

Исправления

5.1 Изменения

Июль 2023

Исправления

  • Методы axipy.Workspace.load_file() и axipy.Workspace.save_file() теперь работают независимо от наличия главного окна Аксиомы. Методы axipy.MainWindow.load_workspace() и axipy.MainWindow.save_workspace() отмечены как устаревшие.

5.0.1 Изменения

Июль 2023

Исправления

  • Для классов (словарей dict):

    • Исправлена ошибка с неправильной работой оператора принадлежности in;

    • Исправлена некорректная работа метода get(), где не учитывалось значение по умолчанию;

    • Исправлена ошибка, где при обращение по индексу [] к несуществующему элементу, не генерировалось исключение KeyError.

5.0 Изменения

Июнь 2023

Новое

Исправления

  • Класс axipy.app.Notifications перенесен в axipy.gui как axipy.gui.Notifications.

  • В соответствии с PEP 8#package-and-module-names переименованы модули:

    • Модуль axipy.concurrent.AxipyProgressHandler переименован в axipy.concurrent.axipy_progress_handler.

    • Модуль axipy.concurrent.Task переименован в axipy.concurrent.task.

    • Модуль axipy.concurrent.TaskManager переименован в axipy.concurrent.task_manager_.

    • Модуль axipy.concurrent.TaskUtils переименован в axipy.concurrent.task_utils.

    • Модуль axipy.cs.CoordSystem переименован в axipy.cs.coord_system.

    • Модуль axipy.cs.CoordTransformer переименован в axipy.cs.coord_transformer.

    • Модуль axipy.da.attribute_schema переименован в axipy.da.schema.

    • Модуль axipy.da.DataManagerWrapper переименован в axipy.da.data_manager_.

    • Модуль axipy.da.DataObjectWrapper переименован в axipy.da.data_object.

    • Модуль axipy.da.FeatureWrapper переименован в axipy.da.feature.

    • Модуль axipy.da.Geometry переименован в axipy.da.geometry.

    • Модуль axipy.da.Style переименован в axipy.da.style.

    • Модуль axipy.da.TabFile переименован в axipy.da.tab_file.

    • Модуль axipy.gui.ActiveToolPanel переименован в axipy.gui.active_tool_panel.

    • Модуль axipy.gui.DialogWrapper переименован в axipy.gui.dialog.

    • Модуль axipy.gui.Notifications переименован в axipy.gui.notifications.

    • Модуль axipy.gui.SelectionManagerWrapper переименован в axipy.gui.selection_manager_.

    • Модуль axipy.gui.ToolWrapper переименован в axipy.gui.map_tool.

    • Модуль axipy.gui.view_manager_wrapper переименован в axipy.gui.view_manager_.

    • Модуль axipy.gui.ViewWrapper переименован в axipy.gui.view.

    • Модуль axipy.gui.WidgetWrapper переименован в axipy.gui.widgets.

    • Модуль axipy.gui.Workspace переименован в axipy.gui.workspace.

    • Модуль axipy.mi.MIGeometry переименован в axipy.mi.mi_geometry.

    • Модуль axipy.render.map переименован в axipy.render.map_.

4.4 Изменения

Февраль 2023

Исправления

  • Методы axipy.da.CollectionStyle.point(), axipy.da.CollectionStyle.line(), axipy.da.CollectionStyle.polygon(), axipy.da.CollectionStyle.text() реализованы как свойства.

4.3 Изменения

Декабрь 2022

Новое

  • Модули устанавливаются в папку installed_modules.

  • Явное указание секции [general] в файле метаданных модуля manifest.ini необязательно.

  • Модули с зависимостями.

  • Обход ошибки при импорте библиотеки Matplotlib.

  • Раздел Среда разработки.

  • Методы axipy.gui.SelectToolHelpers.select_by_mouse() и axipy.gui.SelectToolHelpers.select_by_rect() для выделения геометрий как в инструменте Выбор.

  • Доступ к объектам данных в axipy.da.DataManager по имени как в словаре dict.

  • Редактируемый атрибут axipy.da.Table.schema.

  • Свойства подписей.

  • Список загруженных провайдеров axipy.da.ProviderManager.providers().

Исправления

  • При выполнении конвертации axipy.da.MifMidDataProvider.convert_to_tab() терялись пространственные данные.

  • Из-за похожести с axipy.gui.MapView.device_rect свойство axipy.gui.View.rect переименовано в axipy.gui.View.position.

  • axipy.gui.Map.to_image() не учитывал ограничивающий прямоугольник.

  • Метод axipy.da.Geometry.from_json() переименован в axipy.da.Geometry.from_geojson().

  • Класс axipy.utl.Printer переименован в axipy.utl.FloatFormatter.

  • Для axipy.da.DataManager.sql_dialect сменен тип данных с str на enum.

  • Свойство axipy.render.Label.placementPolicy вынесено как enum axipy.render.LabelOverlap.

4.0 Изменения

Июнь 2022

Новое

  • Метод создания и показа главного окна axipy.app.MainWindow.show().

Исправления

  • Свойство axipy.gui.ReportView.scale() переименовано в axipy.gui.ReportView.view_scale.

3.7.0 Изменения

Март 2022

Новое

  • Методы axipy.gui.MapTool.load()/axipy.gui.MapTool.unload() класса axipy.gui.MapTool; метод axipy.gui.MapTool.deactivate() отмечен как устаревший.

  • Метод axipy.gui.MapTool.canDeactivate() переименован в axipy.gui.MapTool.canUnload().

  • Функция поиска перевода axipy.tr().

Исправления

  • Изменены пределы для свойств axipy.render.RasterLayer.brightness и axipy.render.RasterLayer.contrast на диапазон (-100…100).

3.5.0 Изменения

Август 2021

Новое

  • Новые вспомогательные методы в axipy.gui.MapTool.

  • Объектно-ориентированный стиль создания кнопок axipy.menubar.Button.

  • Механизм слежения за значениями axipy.da.state_manager.

  • Распространение модулей в архивах.

  • Объявление модулей с наследованием от axipy.AxiomaPlugin.

  • Каталог данных содержит таблицу выборки axipy.da.DataCatalog.selection.

  • Менеджер для запуска и управления пользовательскими задачами axipy.concurrent.TaskManager.

  • Добавлена панель активного инструмента axipy.gui.ActiveToolPanel в которую можно поместить графический элемент упрощающий работу с пользовательским инструментом.

Исправления

  • Класс axipy.da.Collection переименован в axipy.da.GeometryCollection.

  • Методы axipy.da.DataCatalog.tables(), axipy.da.DataCatalog.objects(), axipy.da.DataCatalog.count() реализованы как свойства. Метод axipy.da.Schema.attribute_names() так-же переделан как свойство.

  • Убраны класс axipy.cs.UnitService и его экземпляр axipy.cs.unit. Их функционал перенесен в базовый класс axipy.cs.EarthUnit, который переименован в axipy.cs.Unit. Переименованы методы axipy.cs.LinearUnit.list_all(), axipy.cs.AreaUnit.list_all().

  • Переименован класс axipy.da.DataCatalog в axipy.da.DataManager

  • Переименован класс axipy.gui.ViewService в axipy.gui.ViewManager

  • Переименован класс axipy.gui.SelectionService в axipy.gui.SelectionManager

  • Переименован класс axipy.da.DataProviders в axipy.da.ProviderManager

  • Экземпляр класса axipy.render.Map axipy.render.Map.unit перенесен в класс axipy.gui.MapView.

3.0.0 Изменения

Апрель 2021

Новое

  • Руководство разработчика объединено со справочником функций.

  • Свойство временной таблицы axipy.da.Table.is_temporary.

  • Менеджер контекста with для axipy.da.DataObject.

  • Транзакционная модель редактирования таблиц: axipy.da.Table.restore(), axipy.da.Table.commit(), axipy.da.Table.is_modified, axipy.da.Table.insert(), axipy.da.Table.update(), axipy.da.Table.delete().

  • Каталог объектов данных axipy.app.MainWindow.catalog по умолчанию. Открываемые объекты данных автоматически попадают в каталог главного окна. Запросы axipy.da.DataCatalog.query() производятся к этому каталогу без явного указания конкретных таблиц.

  • Создаваемые окна axipy.gui.ViewService.create_view() автоматически добавляются в главное окно программы.

  • Настройки ГИС Аксиома axipy.Settings.

  • Провайдеры данных axipy.da.DataProviders со специализированными параметрами для открытия/создания и импорта/экспорта: axipy.da.DataProviders.tab, axipy.da.DataProviders.shp и другие.

  • Раздельные типы стилей: axipy.da.PointStyle, axipy.da.PolygonStyle и другие.

  • Раздельные типы геометрий: axipy.da.Point, axipy.da.Polygon и другие.

  • Загрузка/сохранение рабочих наборов axipy.app.MainWindow.load_workspace(), axipy.app.MainWindow.save_workspace().

  • Удаление кнопок axipy.menubar.remove() приводит к удалению групп и вкладок axipy.menubar.Position, если они стали пустыми.

Исправления

  • Ошибка при попытке закрытия временной таблицы с изменениями.

  • Ошибка при задании разделителя в формате CSV axipy.da.CsvDataProvider.

2.9.0 Изменения

Декабрь 2020

Новое

  • Первоначальный релиз.