Spec-Zone.ru › MySQL Workbench

C.2 Модули

В модулях GRT содержатся библиотеки, включающие список функций, которые экспортируются для использования кодом в других модулях, скриптах или самом Workbench. Модули могут быть написаны на C++ или Python, но типы данных, используемые для аргументов и возвращаемого значения, должны быть типами GRT.

Модули GRT похожи на модули Python, но импортируются из встроенного модуля grt, а не непосредственно из внешнего файла. Список модулей, загруженных в модуль grt, получается из grt.modules. Модули можно импортировать в Python, используя инструкции, такие как from grt.modules import WbModel.

Для экспорта функций в виде модуля из кода Python выполните следующие шаги:

  1. Исходный файл должен находиться в папке пользовательских модулей. Этот путь отображается в оболочке скриптов Workbench с меткой Поиск пользовательских плагинов в. Также файл можно установить, используя пункт меню Скрипты, Установить файл плагина/модуля.

    Таблица C.2 Положение файла пользовательского модуля по умолчанию

    Таблица C.2 Положение файла пользовательского модуля по умолчанию
    Операционная система Путь к файлу
    Windows %AppData%\MySQL\Workbench\modules
    macOS ~username/Library/Application Support/MySQL/Workbench/modules
    Linux ~username/.mysql/workbench/modules

  2. Имя исходного файла должно иметь расширение _grt.py; например, my_module_grt.py.

  3. Необходимо определить метаданные модуля. Это можно сделать, используя функцию DefineModule из модуля wb:

    from wb import *
    ModuleInfo = DefineModule(name='MyModule', author='Your Name', version='1.0')
    
  4. Функции, подлежащие экспорту, требуют объявления их сигнатуры. Это достигается с помощью декоратора export в ранее созданном объекте ModuleInfo:

    @ModuleInfo.export(grt.INT, grt.STRING)
    def checkString(s):
       ...
    

    В инструкции export тип возвращаемого значения указывается первым, а затем типы входных параметров, указанные как имена типов GRT. Можно использовать следующие имена типов:

    • grt.INT: Целочисленное значение. Также используется для логических значений.

    • grt.DOUBLE: Значение с плавающей запятой.

    • grt.STRING: Данные строки UTF-8 или ASCII.

    • grt.DICT: Элемент словаря ключ-значение. Ключи должны быть строками.

    • grt.LIST: Список других значений. Можно указать тип содержимого как кортеж в форме (grt.LIST, <type-or-class>). Например, (grt.LIST, grt.STRING) для списка строк. Для списка объектов таблицы будет указано следующее: (grt.LIST, grt.classes.db_table).

    • grt.OBJECT: Экземпляр объекта GRT или объект класса GRT из grt.classes.

    Примечание

    Эти типы определены в модуле grt, который необходимо импортировать, прежде чем они станут доступны для использования.

Следующий фрагмент кода иллюстрирует объявление модуля, экспортирующего одну функцию:

from wb import *
import grt

ModuleInfo = DefineModule(name='MyModule', author="your name", version='1.0')

@ModuleInfo.export(grt.DOUBLE, grt.STRING, (grt.LIST, grt.DOUBLE))
def printListSum(message, doubleList):
   sum = 0
   for d in doubleList:
      sum = sum + d
   print message, sum
   return sum

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/workbench-en/wb-modules.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API